From 0cdf350b688c6c551e3aada9399f8b29e520a565 Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Wed, 28 Jan 2026 15:30:16 -0800 Subject: [PATCH 01/29] update phasedComponent pattern and switch direct stagedComponent callers to use it --- packages/components/Icon/package.json | 1 + .../components/Icon/src/FontIcon/FontIcon.tsx | 4 +- .../components/Icon/src/SvgIcon/SvgIcon.tsx | 4 +- packages/components/Icon/src/legacy/Icon.tsx | 4 +- packages/components/Menu/src/Menu/Menu.tsx | 8 +-- .../src/MenuCallout/MenuCallout.android.tsx | 11 ++-- .../Menu/src/MenuCallout/MenuCallout.tsx | 12 ++-- .../Notification/src/Notification.helper.tsx | 57 ++++++++++--------- .../TabListAnimatedIndicator.tsx | 4 +- .../TabListAnimatedIndicator.win32.tsx | 4 +- packages/experimental/Overflow/package.json | 3 +- .../Overflow/src/Overflow/Overflow.tsx | 10 ++-- .../src/OverflowItem/OverflowItem.tsx | 9 +-- .../src/OverflowItem/OverflowItem.types.ts | 3 + packages/experimental/Shadow/package.json | 1 + packages/experimental/Shadow/src/Shadow.tsx | 23 +++----- .../experimental/Shadow/src/Shadow.types.ts | 4 ++ packages/experimental/Tooltip/package.json | 2 +- packages/experimental/Tooltip/src/Tooltip.tsx | 7 ++- .../src/component-patterns/phasedComponent.ts | 25 ++++++++ .../src/component-patterns/render.types.ts | 9 ++- .../src/component-patterns/stagedComponent.ts | 24 ++++++++ .../component-patterns/stagedComponent.tsx | 45 --------------- packages/framework-base/src/index.ts | 9 +-- yarn.lock | 5 +- 25 files changed, 150 insertions(+), 138 deletions(-) create mode 100644 packages/framework-base/src/component-patterns/phasedComponent.ts create mode 100644 packages/framework-base/src/component-patterns/stagedComponent.ts delete mode 100644 packages/framework-base/src/component-patterns/stagedComponent.tsx diff --git a/packages/components/Icon/package.json b/packages/components/Icon/package.json index 5f15e9d7b0..42a445d5a7 100644 --- a/packages/components/Icon/package.json +++ b/packages/components/Icon/package.json @@ -34,6 +34,7 @@ "dependencies": { "@fluentui-react-native/adapters": "workspace:*", "@fluentui-react-native/framework": "workspace:*", + "@fluentui-react-native/framework-base": "workspace:*", "@fluentui-react-native/text": "workspace:*" }, "devDependencies": { diff --git a/packages/components/Icon/src/FontIcon/FontIcon.tsx b/packages/components/Icon/src/FontIcon/FontIcon.tsx index d847394391..4e0a84023b 100644 --- a/packages/components/Icon/src/FontIcon/FontIcon.tsx +++ b/packages/components/Icon/src/FontIcon/FontIcon.tsx @@ -1,12 +1,12 @@ import { Text } from 'react-native'; -import { mergeProps, stagedComponent } from '@fluentui-react-native/framework'; +import { mergeProps, phasedComponent } from '@fluentui-react-native/framework-base'; import type { FontIconProps } from './FontIcon.types'; import { fontIconName } from './FontIcon.types'; import { useFontIcon } from './useFontIcon'; -export const FontIcon = stagedComponent((props: FontIconProps) => { +export const FontIcon = phasedComponent((props: FontIconProps) => { const fontIconProps = useFontIcon(props); return (final: FontIconProps) => { const newProps = mergeProps(fontIconProps, final); diff --git a/packages/components/Icon/src/SvgIcon/SvgIcon.tsx b/packages/components/Icon/src/SvgIcon/SvgIcon.tsx index 51b046b62f..10085c5743 100644 --- a/packages/components/Icon/src/SvgIcon/SvgIcon.tsx +++ b/packages/components/Icon/src/SvgIcon/SvgIcon.tsx @@ -1,13 +1,13 @@ import { Platform, View } from 'react-native'; -import { mergeProps, stagedComponent } from '@fluentui-react-native/framework'; +import { mergeProps, phasedComponent } from '@fluentui-react-native/framework-base'; import { SvgUri } from 'react-native-svg'; import type { SvgIconProps } from './SvgIcon.types'; import { svgIconName } from './SvgIcon.types'; import { useSvgIcon } from './useSvgIcon'; -export const SvgIcon = stagedComponent((props: SvgIconProps) => { +export const SvgIcon = phasedComponent((props: SvgIconProps) => { const svgProps = useSvgIcon(props); return (final: SvgIconProps) => { const { style, height, width, src, uri, viewBox, color, ...rest } = mergeProps(svgProps, final); diff --git a/packages/components/Icon/src/legacy/Icon.tsx b/packages/components/Icon/src/legacy/Icon.tsx index ee160fefe6..c016bd5b2e 100644 --- a/packages/components/Icon/src/legacy/Icon.tsx +++ b/packages/components/Icon/src/legacy/Icon.tsx @@ -2,7 +2,7 @@ import { Image, Platform, View } from 'react-native'; import type { ImageStyle, TextStyle } from 'react-native'; import { mergeStyles, useFluentTheme } from '@fluentui-react-native/framework'; -import { stagedComponent, mergeProps, getMemoCache, getTypedMemoCache } from '@fluentui-react-native/framework'; +import { phasedComponent, mergeProps, getMemoCache, getTypedMemoCache } from '@fluentui-react-native/framework-base'; import { Text } from '@fluentui-react-native/text'; import type { SvgProps } from 'react-native-svg'; import { SvgUri } from 'react-native-svg'; @@ -92,7 +92,7 @@ function renderSvg(iconProps: IconProps) { } } -export const Icon = stagedComponent((props: IconProps) => { +export const Icon = phasedComponent((props: IconProps) => { const theme = useFluentTheme(); return (rest: IconProps) => { diff --git a/packages/components/Menu/src/Menu/Menu.tsx b/packages/components/Menu/src/Menu/Menu.tsx index 6d28107630..5b18424acf 100644 --- a/packages/components/Menu/src/Menu/Menu.tsx +++ b/packages/components/Menu/src/Menu/Menu.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import { stagedComponent } from '@fluentui-react-native/framework'; +import { phasedComponent } from '@fluentui-react-native/framework-base'; import type { MenuProps } from './Menu.types'; import { menuName } from './Menu.types'; @@ -8,12 +8,12 @@ import { renderFinalMenu } from './renderMenu'; import { useMenu } from './useMenu'; import { useMenuContextValue } from './useMenuContextValue'; -export const Menu = stagedComponent((props: MenuProps) => { +export const Menu = phasedComponent((props: MenuProps) => { const state = useMenu(props); const contextValue = useMenuContextValue(state); - return (_rest: MenuProps, children: React.ReactNode) => { - const childrenArray = React.Children.toArray(children) as React.ReactElement[]; + return (rest: MenuProps) => { + const childrenArray = React.Children.toArray(rest.children) as React.ReactElement[]; if (__DEV__) { if (childrenArray.length !== 2) { diff --git a/packages/components/Menu/src/MenuCallout/MenuCallout.android.tsx b/packages/components/Menu/src/MenuCallout/MenuCallout.android.tsx index d9f2f06d41..097b99b356 100644 --- a/packages/components/Menu/src/MenuCallout/MenuCallout.android.tsx +++ b/packages/components/Menu/src/MenuCallout/MenuCallout.android.tsx @@ -1,8 +1,6 @@ -import React from 'react'; import { Animated, Modal, TouchableWithoutFeedback, View, StyleSheet, ScrollView } from 'react-native'; -import { stagedComponent } from '@fluentui-react-native/framework'; -import { mergeProps } from '@fluentui-react-native/framework'; +import { mergeProps, phasedComponent } from '@fluentui-react-native/framework-base'; import type { MenuCalloutProps } from './MenuCallout.types'; import { menuCalloutName } from './MenuCallout.types'; @@ -10,11 +8,12 @@ import { useMenuContext } from '../context'; const AnimatedScrollView = Animated.createAnimatedComponent(ScrollView); -export const MenuCallout = stagedComponent((props: MenuCalloutProps) => { +export const MenuCallout = phasedComponent((props: MenuCalloutProps) => { const context = useMenuContext(); - return (_rest: MenuCalloutProps, children: React.ReactNode) => { - const mergedProps = mergeProps(props, _rest); + return (innerProps: MenuCalloutProps) => { + const { children, ...rest } = mergeProps(props, innerProps); + const mergedProps = mergeProps(props, rest); const tokens = props.tokens; return ( diff --git a/packages/components/Menu/src/MenuCallout/MenuCallout.tsx b/packages/components/Menu/src/MenuCallout/MenuCallout.tsx index b0f655c3ec..4877476139 100644 --- a/packages/components/Menu/src/MenuCallout/MenuCallout.tsx +++ b/packages/components/Menu/src/MenuCallout/MenuCallout.tsx @@ -1,15 +1,13 @@ -import React from 'react'; - import { Callout } from '@fluentui-react-native/callout'; -import { stagedComponent } from '@fluentui-react-native/framework'; -import { mergeProps } from '@fluentui-react-native/framework'; +import { mergeProps, phasedComponent } from '@fluentui-react-native/framework-base'; import type { MenuCalloutProps } from './MenuCallout.types'; import { menuCalloutName } from './MenuCallout.types'; -export const MenuCallout = stagedComponent((props: MenuCalloutProps) => { - return (_rest: MenuCalloutProps, children: React.ReactNode) => { - const mergedProps = mergeProps(props, _rest); +export const MenuCallout = phasedComponent((props: MenuCalloutProps) => { + return (innerProps: MenuCalloutProps) => { + const { children, ...rest } = innerProps; + const mergedProps = mergeProps(props, rest); return {children}; }; diff --git a/packages/components/Notification/src/Notification.helper.tsx b/packages/components/Notification/src/Notification.helper.tsx index 1f7692245b..53470446b2 100644 --- a/packages/components/Notification/src/Notification.helper.tsx +++ b/packages/components/Notification/src/Notification.helper.tsx @@ -2,7 +2,7 @@ import React from 'react'; import type { ButtonProps, ButtonTokens } from '@fluentui-react-native/button'; import { ButtonV1 as Button } from '@fluentui-react-native/button'; -import { mergeProps, stagedComponent } from '@fluentui-react-native/framework'; +import { mergeProps, phasedComponent } from '@fluentui-react-native/framework-base'; import type { SvgIconProps } from '@fluentui-react-native/icon'; import { createIconProps } from '@fluentui-react-native/icon'; import { globalTokens } from '@fluentui-react-native/theme-tokens'; @@ -59,31 +59,36 @@ export function createNotificationButtonProps(userProps: NotificationProps) { * (e.g. setting color in Notification.styling.ts will not apply to the action button text) * This helper component is used to customize tokens via props. */ -export const NotificationButton = stagedComponent((props: NotificationButtonProps) => { - const CustomizedButton = Button.customize({ - subtle: { - backgroundColor: 'transparent', - color: props.color, - iconColor: props.color, - disabled: { - color: props.disabledColor, - }, - pressed: { - color: props.pressedColor, - }, - }, - medium: { - hasContent: { - minWidth: 0, - padding: globalTokens.sizeNone, - paddingHorizontal: globalTokens.sizeNone, - variant: 'body2Strong', - }, - }, - }); +export const NotificationButton = phasedComponent((props: NotificationButtonProps) => { + const CustomizedButton = React.useMemo( + () => + Button.customize({ + subtle: { + backgroundColor: 'transparent', + color: props.color, + iconColor: props.color, + disabled: { + color: props.disabledColor, + }, + pressed: { + color: props.pressedColor, + }, + }, + medium: { + hasContent: { + minWidth: 0, + padding: globalTokens.sizeNone, + paddingHorizontal: globalTokens.sizeNone, + variant: 'body2Strong', + }, + }, + }), + [props.color, props.disabledColor, props.pressedColor], + ); - return (final: NotificationButtonProps, children: React.ReactNode) => { - const mergedProps = mergeProps(props, final); + return (final: NotificationButtonProps) => { + const { children, ...rest } = final; + const mergedProps = mergeProps(props, rest); return {children}; }; -}, true); +}); diff --git a/packages/components/TabList/src/TabListAnimatedIndicator/TabListAnimatedIndicator.tsx b/packages/components/TabList/src/TabListAnimatedIndicator/TabListAnimatedIndicator.tsx index 7aee136acd..69f1bdc461 100644 --- a/packages/components/TabList/src/TabListAnimatedIndicator/TabListAnimatedIndicator.tsx +++ b/packages/components/TabList/src/TabListAnimatedIndicator/TabListAnimatedIndicator.tsx @@ -1,12 +1,12 @@ import { Animated } from 'react-native'; -import { stagedComponent } from '@fluentui-react-native/framework'; +import { phasedComponent } from '@fluentui-react-native/framework-base'; import type { AnimatedIndicatorProps } from './TabListAnimatedIndicator.types'; import { tablistAnimatedIndicatorName } from './TabListAnimatedIndicator.types'; import { useAnimatedIndicatorStyles } from './useAnimatedIndicatorStyles'; -export const TabListAnimatedIndicator = stagedComponent((props) => { +export const TabListAnimatedIndicator = phasedComponent((props) => { const styles = useAnimatedIndicatorStyles(props); return () => { return ; diff --git a/packages/components/TabList/src/TabListAnimatedIndicator/TabListAnimatedIndicator.win32.tsx b/packages/components/TabList/src/TabListAnimatedIndicator/TabListAnimatedIndicator.win32.tsx index 11732f552c..7826f7a6bb 100644 --- a/packages/components/TabList/src/TabListAnimatedIndicator/TabListAnimatedIndicator.win32.tsx +++ b/packages/components/TabList/src/TabListAnimatedIndicator/TabListAnimatedIndicator.win32.tsx @@ -1,7 +1,7 @@ import { View } from 'react-native'; import type { Animated, ViewProps, ViewStyle } from 'react-native'; -import { stagedComponent, memoize } from '@fluentui-react-native/framework'; +import { phasedComponent, memoize } from '@fluentui-react-native/framework-base'; import type { AnimatedIndicatorProps } from './TabListAnimatedIndicator.types'; import { tablistAnimatedIndicatorName } from './TabListAnimatedIndicator.types'; @@ -16,7 +16,7 @@ function indicatorPropsWorker(animationClass: string, style: Animated.AnimatedPr * This component renders as the indicator for the selected tab. Its styles are manually calculated using * changing layout stored in the tablist context, so it doesn't need to use the compose or compressible franework. */ -export const TabListAnimatedIndicator = stagedComponent((props) => { +export const TabListAnimatedIndicator = phasedComponent((props) => { const styles = useAnimatedIndicatorStyles(props); return () => { const indicatorProps = getIndicatorProps('Ribbon_TabUnderline', styles); diff --git a/packages/experimental/Overflow/package.json b/packages/experimental/Overflow/package.json index d9d4cbc6ac..d19993e2a5 100644 --- a/packages/experimental/Overflow/package.json +++ b/packages/experimental/Overflow/package.json @@ -32,7 +32,8 @@ "update-snapshots": "fluentui-scripts jest -u" }, "dependencies": { - "@fluentui-react-native/framework": "workspace:*" + "@fluentui-react-native/framework": "workspace:*", + "@fluentui-react-native/framework-base": "workspace:*" }, "devDependencies": { "@babel/core": "^7.20.0", diff --git a/packages/experimental/Overflow/src/Overflow/Overflow.tsx b/packages/experimental/Overflow/src/Overflow/Overflow.tsx index 9ec996449d..b1fa373dd6 100644 --- a/packages/experimental/Overflow/src/Overflow/Overflow.tsx +++ b/packages/experimental/Overflow/src/Overflow/Overflow.tsx @@ -1,17 +1,17 @@ -import * as React from 'react'; import { View } from 'react-native'; -import { mergeProps, stagedComponent } from '@fluentui-react-native/framework'; +import { mergeProps, phasedComponent } from '@fluentui-react-native/framework-base'; import type { OverflowProps } from './Overflow.types'; import { overflowName } from './Overflow.types'; import { useOverflow } from './useOverflow'; import { OverflowContext } from '../OverflowContext'; -export const Overflow = stagedComponent((initial: OverflowProps) => { +export const Overflow = phasedComponent((initial: OverflowProps) => { const { props, state } = useOverflow(initial); - return (final: OverflowProps, ...children: React.ReactNode[]) => { - const mergedProps = mergeProps(props, final); + return (final: OverflowProps) => { + const { children, ...rest } = final; + const mergedProps = mergeProps(props, rest); return ( {children} diff --git a/packages/experimental/Overflow/src/OverflowItem/OverflowItem.tsx b/packages/experimental/Overflow/src/OverflowItem/OverflowItem.tsx index 8ce16638f9..2188390ddf 100644 --- a/packages/experimental/Overflow/src/OverflowItem/OverflowItem.tsx +++ b/packages/experimental/Overflow/src/OverflowItem/OverflowItem.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import type { StyleProp, ViewProps, ViewStyle } from 'react-native'; -import { mergeProps, stagedComponent, memoize, mergeStyles } from '@fluentui-react-native/framework'; +import { mergeProps, phasedComponent, memoize, mergeStyles } from '@fluentui-react-native/framework-base'; import type { OverflowItemProps } from './OverflowItem.types'; import { overflowItemName } from './OverflowItem.types'; @@ -12,14 +12,15 @@ function overflowItemPropWorker(props: ViewProps, style: StyleProp): return { ...props, style }; } -export const OverflowItem = stagedComponent((userProps: OverflowItemProps) => { +export const OverflowItem = phasedComponent((userProps: OverflowItemProps) => { const { props, state } = useOverflowItem(userProps); - return (finalProps: OverflowItemProps, children: React.ReactNode) => { + return (finalProps: OverflowItemProps) => { + const { children, ...rest } = finalProps; if (state.layoutDone && !state.visible) { return null; } - const mergedProps = mergeProps(props, finalProps); + const mergedProps = mergeProps(props, rest); const childrenArray = React.Children.toArray(children); const child = childrenArray[0]; diff --git a/packages/experimental/Overflow/src/OverflowItem/OverflowItem.types.ts b/packages/experimental/Overflow/src/OverflowItem/OverflowItem.types.ts index 1197099c3e..a6cbdea862 100644 --- a/packages/experimental/Overflow/src/OverflowItem/OverflowItem.types.ts +++ b/packages/experimental/Overflow/src/OverflowItem/OverflowItem.types.ts @@ -1,3 +1,4 @@ +import type React from 'react'; import type { ViewProps } from 'react-native'; import type { OverflowItemChangeHandler } from '../Overflow/Overflow.types'; @@ -11,6 +12,8 @@ export interface OverflowItemProps extends ViewProps { priority?: number; /** Callback that runs whenever this item's visibility changes or whenever its dimensions should be manually set */ onOverflowItemChange?: OverflowItemChangeHandler; + /** Mark this as having exactly one child */ + children: React.ReactElement; } export interface OverflowItemState { diff --git a/packages/experimental/Shadow/package.json b/packages/experimental/Shadow/package.json index ee77f8d5f7..72dbdd7587 100644 --- a/packages/experimental/Shadow/package.json +++ b/packages/experimental/Shadow/package.json @@ -33,6 +33,7 @@ }, "dependencies": { "@fluentui-react-native/framework": "workspace:*", + "@fluentui-react-native/framework-base": "workspace:*", "@fluentui-react-native/pressable": "workspace:*", "@fluentui-react-native/theme-types": "workspace:*" }, diff --git a/packages/experimental/Shadow/src/Shadow.tsx b/packages/experimental/Shadow/src/Shadow.tsx index 8e30aaff12..9b1a6f29fc 100644 --- a/packages/experimental/Shadow/src/Shadow.tsx +++ b/packages/experimental/Shadow/src/Shadow.tsx @@ -2,36 +2,27 @@ import * as React from 'react'; import type { ViewStyle } from 'react-native'; import { View } from 'react-native'; -import { mergeProps, stagedComponent } from '@fluentui-react-native/framework'; -import { memoize } from '@fluentui-react-native/framework'; +import { memoize, mergeProps, phasedComponent } from '@fluentui-react-native/framework-base'; import type { ShadowToken } from '@fluentui-react-native/theme-types'; import type { ShadowProps } from './Shadow.types'; import { shadowName } from './Shadow.types'; import { getShadowTokenStyleSet } from './shadowStyle'; -export const Shadow = stagedComponent((props: ShadowProps) => { - return (final: ShadowProps, children: React.ReactNode) => { +export const Shadow = phasedComponent((props: ShadowProps) => { + return (final: ShadowProps) => { + const { children, ...rest } = final; if (!props.shadowToken) { return <>{children}; } - const childrenArray = React.Children.toArray(children) as React.ReactElement[]; - const child = childrenArray[0]; - - if (__DEV__) { - if (childrenArray.length !== 1) { - console.warn('Shadow must only have one child'); - } - } - - const { style: childStyle, ...restOfChildProps } = child.props; + const { style: childStyle, ...restOfChildProps } = children.props; const shadowViewStyleProps = getStylePropsForShadowViews(childStyle, props.shadowToken); const innerShadowViewProps = mergeProps(restOfChildProps, shadowViewStyleProps.inner); - const outerShadowViewProps = mergeProps(final, shadowViewStyleProps.outer); + const outerShadowViewProps = mergeProps(rest, shadowViewStyleProps.outer); - const childWithInnerShadow = React.cloneElement(child, innerShadowViewProps); + const childWithInnerShadow = React.cloneElement(children, innerShadowViewProps); return {childWithInnerShadow}; }; diff --git a/packages/experimental/Shadow/src/Shadow.types.ts b/packages/experimental/Shadow/src/Shadow.types.ts index 0822798c00..601d8e678a 100644 --- a/packages/experimental/Shadow/src/Shadow.types.ts +++ b/packages/experimental/Shadow/src/Shadow.types.ts @@ -1,3 +1,4 @@ +import type React from 'react'; import type { ViewProps } from 'react-native'; import type { ShadowToken } from '@fluentui-react-native/theme-types'; @@ -6,4 +7,7 @@ export const shadowName = 'Shadow'; export interface ShadowProps extends ViewProps { shadowToken?: ShadowToken; + + /** Exactly one child */ + children: React.ReactElement; } diff --git a/packages/experimental/Tooltip/package.json b/packages/experimental/Tooltip/package.json index ada535f8f8..b4e6abcfa2 100644 --- a/packages/experimental/Tooltip/package.json +++ b/packages/experimental/Tooltip/package.json @@ -33,7 +33,7 @@ }, "dependencies": { "@fluentui-react-native/callout": "workspace:*", - "@fluentui-react-native/framework": "workspace:*" + "@fluentui-react-native/framework-base": "workspace:*" }, "devDependencies": { "@babel/core": "^7.20.0", diff --git a/packages/experimental/Tooltip/src/Tooltip.tsx b/packages/experimental/Tooltip/src/Tooltip.tsx index e20acf27f2..d0355972a2 100644 --- a/packages/experimental/Tooltip/src/Tooltip.tsx +++ b/packages/experimental/Tooltip/src/Tooltip.tsx @@ -7,13 +7,13 @@ import * as React from 'react'; import { findNodeHandle } from 'react-native'; -import { mergeProps, stagedComponent } from '@fluentui-react-native/framework'; +import { mergeProps, phasedComponent } from '@fluentui-react-native/framework-base'; import type { TooltipProps } from './Tooltip.types'; import { tooltipName } from './Tooltip.types'; import NativeTooltipView from './TooltipNativeComponent'; -export const Tooltip = stagedComponent((props: TooltipProps) => { +export const Tooltip = phasedComponent((props: TooltipProps) => { const { target } = props; const [nativeTarget, setNativeTarget] = React.useState(null); @@ -31,7 +31,8 @@ export const Tooltip = stagedComponent((props: TooltipProps) => { } }, [target]); - const TooltipComponent = (rest: TooltipProps, children: React.ReactNode) => { + const TooltipComponent = (innerProps: TooltipProps) => { + const { children, ...rest } = innerProps; return ( {children} diff --git a/packages/framework-base/src/component-patterns/phasedComponent.ts b/packages/framework-base/src/component-patterns/phasedComponent.ts new file mode 100644 index 0000000000..a7d28a1026 --- /dev/null +++ b/packages/framework-base/src/component-patterns/phasedComponent.ts @@ -0,0 +1,25 @@ +import type React from 'react'; +import { jsx, jsxs } from '../jsx-runtime'; +import type { PhasedComponent, PhasedRender } from './render.types'; + +/** + * Take a phased render function and make a real component out of it, attaching the phased render function + * so it can be split if used in that manner. + * @param getInnerPhase - phased render function to wrap into a staged component + */ +export function phasedComponent(getInnerPhase: PhasedRender): PhasedComponent { + return Object.assign( + (props: React.PropsWithChildren) => { + // pull out children from props + const { children, ...outerProps } = props; + const Inner = getInnerPhase(outerProps as TProps); + + if (Array.isArray(children) && children.length > 1) { + return jsxs(Inner, { children }); + } else { + return jsx(Inner, { children }); + } + }, + { _phasedRender: getInnerPhase }, + ); +} diff --git a/packages/framework-base/src/component-patterns/render.types.ts b/packages/framework-base/src/component-patterns/render.types.ts index f86b39bbfe..a84d18cd3b 100644 --- a/packages/framework-base/src/component-patterns/render.types.ts +++ b/packages/framework-base/src/component-patterns/render.types.ts @@ -79,15 +79,14 @@ export type SlotFn = { * * The `children` prop will be automatically inferred and typed correctly by the prop type. Hooks are still expected */ -export type TwoStageRender = (props: TProps) => React.ComponentType>; +export type PhasedRender = (props: TProps) => React.ComponentType>; /** * Component type for a component that can be rendered in two stages, with the attached render function. */ -export type StagedComponent = React.FunctionComponent & { - _twoStageRender?: TwoStageRender; +export type PhasedComponent = React.FunctionComponent & { + _phasedRender?: PhasedRender; }; - /** * The final rendering of the props in a staged render. This is the function component signature that matches that of * React.createElement, children (if present) will be part of the variable args at the end. @@ -113,6 +112,6 @@ export type ComposableFunction = React.FunctionComponent & { _st export type AnyCustomType = | React.FunctionComponent | DirectComponent - | StagedComponent + | PhasedComponent | ComposableFunction | LegacyDirectComponent; diff --git a/packages/framework-base/src/component-patterns/stagedComponent.ts b/packages/framework-base/src/component-patterns/stagedComponent.ts new file mode 100644 index 0000000000..35a03214da --- /dev/null +++ b/packages/framework-base/src/component-patterns/stagedComponent.ts @@ -0,0 +1,24 @@ +import * as React from 'react'; + +import type { StagedRender, ComposableFunction } from './render.types'; + +function asArray(val: T | T[]): T[] { + return Array.isArray(val) ? val : [val]; +} + +/** + * Take a staged render function and make a real component out of it + * + * @param staged - staged render function to wrap into a staged component + * @param memo - optional flag to enable wrapping the created component in a React.memo HOC + * @deprecated Use phasedComponent from phasedComponent.ts instead + */ +export function stagedComponent(staged: StagedRender, memo?: boolean): ComposableFunction { + const component = (props: React.PropsWithChildren) => { + const { children, ...rest } = props; + return staged(rest as TProps)({} as React.PropsWithChildren, asArray(children)); + }; + const stagedComponent = memo ? React.memo(component) : component; + Object.assign(stagedComponent, { _staged: staged }); + return stagedComponent as ComposableFunction; +} diff --git a/packages/framework-base/src/component-patterns/stagedComponent.tsx b/packages/framework-base/src/component-patterns/stagedComponent.tsx deleted file mode 100644 index 492370ebe4..0000000000 --- a/packages/framework-base/src/component-patterns/stagedComponent.tsx +++ /dev/null @@ -1,45 +0,0 @@ -/** - * @jsxRuntime classic - * @jsx withSlots - */ -import * as React from 'react'; -import { withSlots } from './withSlots'; - -import type { StagedComponent, TwoStageRender, StagedRender, ComposableFunction } from './render.types'; - -function asArray(val: T | T[]): T[] { - return Array.isArray(val) ? val : [val]; -} - -/** - * Take a staged render function and make a real component out of it - * - * @param staged - staged render function to wrap into a staged component - * @param memo - optional flag to enable wrapping the created component in a React.memo HOC - */ -export function stagedComponent(staged: StagedRender, memo?: boolean): ComposableFunction { - const component = (props: React.PropsWithChildren) => { - const { children, ...rest } = props; - return staged(rest as TProps)({} as React.PropsWithChildren, asArray(children)); - }; - const stagedComponent = memo ? React.memo(component) : component; - Object.assign(stagedComponent, { _staged: staged }); - return stagedComponent as ComposableFunction; -} - -/** - * Take a two stage render function and make a real component out of it, attaching the staged render function - * so it can be split if used in that manner. - * @param staged - two stage render function to wrap into a staged component - */ -export function twoStageComponent(staged: TwoStageRender): StagedComponent { - return Object.assign( - (props: React.PropsWithChildren) => { - const { children, ...outerProps } = props; - const innerProps = { children } as React.PropsWithChildren; - const Inner = staged(outerProps as TProps); - return ; - }, - { _twoStageRender: staged }, - ); -} diff --git a/packages/framework-base/src/index.ts b/packages/framework-base/src/index.ts index 3a2fd0510d..c37f7fdbcb 100644 --- a/packages/framework-base/src/index.ts +++ b/packages/framework-base/src/index.ts @@ -25,16 +25,17 @@ export type { DirectComponent, DirectComponentFunction, LegacyDirectComponent, - StagedComponent, - StagedRender, - TwoStageRender, + PhasedComponent, + PhasedRender, RenderType, RenderResult, + StagedRender, ComposableFunction, FinalRender, SlotFn, NativeReactType, } from './component-patterns/render.types'; +export { phasedComponent } from './component-patterns/phasedComponent'; export { withSlots } from './component-patterns/withSlots'; -export { stagedComponent, twoStageComponent } from './component-patterns/stagedComponent'; +export { stagedComponent } from './component-patterns/stagedComponent'; export { jsx, jsxs } from './jsx-runtime'; diff --git a/yarn.lock b/yarn.lock index 8029620139..2422eae06f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3687,6 +3687,7 @@ __metadata: "@fluentui-react-native/babel-config": "workspace:*" "@fluentui-react-native/eslint-config-rules": "workspace:*" "@fluentui-react-native/framework": "workspace:*" + "@fluentui-react-native/framework-base": "workspace:*" "@fluentui-react-native/jest-config": "workspace:*" "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/pressable": "workspace:*" @@ -3955,6 +3956,7 @@ __metadata: "@fluentui-react-native/babel-config": "workspace:*" "@fluentui-react-native/eslint-config-rules": "workspace:*" "@fluentui-react-native/framework": "workspace:*" + "@fluentui-react-native/framework-base": "workspace:*" "@fluentui-react-native/jest-config": "workspace:*" "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" @@ -4373,6 +4375,7 @@ __metadata: "@fluentui-react-native/button": "workspace:*" "@fluentui-react-native/eslint-config-rules": "workspace:*" "@fluentui-react-native/framework": "workspace:*" + "@fluentui-react-native/framework-base": "workspace:*" "@fluentui-react-native/jest-config": "workspace:*" "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/menu": "workspace:*" @@ -5389,7 +5392,7 @@ __metadata: "@fluentui-react-native/button": "workspace:*" "@fluentui-react-native/callout": "workspace:*" "@fluentui-react-native/eslint-config-rules": "workspace:*" - "@fluentui-react-native/framework": "workspace:*" + "@fluentui-react-native/framework-base": "workspace:*" "@fluentui-react-native/jest-config": "workspace:*" "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" From d9aa22ec36d596de4d29602aee7e042f2e4ac71b Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Wed, 28 Jan 2026 15:30:38 -0800 Subject: [PATCH 02/29] Change files --- ...mental-shadow-e6c1af9b-c5aa-44e6-9b66-cd38207c7522.json | 7 +++++++ ...ramework-base-9f12c70a-179d-4a28-803a-73bbb2b3df97.json | 7 +++++++ ...t-native-icon-2d7e4a6e-0c5a-4f1f-b456-98beb80c1bff.json | 7 +++++++ ...t-native-menu-52a2dd2f-433b-4a98-bbd2-02d1ca0c4de3.json | 7 +++++++ ...-notification-39168bfc-7644-4bb1-b193-784c84c637a8.json | 7 +++++++ ...tive-overflow-913fd2cf-938c-4465-a1ae-3c42126abb1a.json | 7 +++++++ ...ative-tablist-eae99f12-b52e-426c-938f-460f65a5ce4f.json | 7 +++++++ ...ative-tooltip-d650af05-51c4-488a-878b-6dca19b33999.json | 7 +++++++ 8 files changed, 56 insertions(+) create mode 100644 change/@fluentui-react-native-experimental-shadow-e6c1af9b-c5aa-44e6-9b66-cd38207c7522.json create mode 100644 change/@fluentui-react-native-framework-base-9f12c70a-179d-4a28-803a-73bbb2b3df97.json create mode 100644 change/@fluentui-react-native-icon-2d7e4a6e-0c5a-4f1f-b456-98beb80c1bff.json create mode 100644 change/@fluentui-react-native-menu-52a2dd2f-433b-4a98-bbd2-02d1ca0c4de3.json create mode 100644 change/@fluentui-react-native-notification-39168bfc-7644-4bb1-b193-784c84c637a8.json create mode 100644 change/@fluentui-react-native-overflow-913fd2cf-938c-4465-a1ae-3c42126abb1a.json create mode 100644 change/@fluentui-react-native-tablist-eae99f12-b52e-426c-938f-460f65a5ce4f.json create mode 100644 change/@fluentui-react-native-tooltip-d650af05-51c4-488a-878b-6dca19b33999.json diff --git a/change/@fluentui-react-native-experimental-shadow-e6c1af9b-c5aa-44e6-9b66-cd38207c7522.json b/change/@fluentui-react-native-experimental-shadow-e6c1af9b-c5aa-44e6-9b66-cd38207c7522.json new file mode 100644 index 0000000000..ced6cf240a --- /dev/null +++ b/change/@fluentui-react-native-experimental-shadow-e6c1af9b-c5aa-44e6-9b66-cd38207c7522.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "update phasedComponent pattern and switch direct stagedComponent callers to use it", + "packageName": "@fluentui-react-native/experimental-shadow", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-framework-base-9f12c70a-179d-4a28-803a-73bbb2b3df97.json b/change/@fluentui-react-native-framework-base-9f12c70a-179d-4a28-803a-73bbb2b3df97.json new file mode 100644 index 0000000000..24879b9ebe --- /dev/null +++ b/change/@fluentui-react-native-framework-base-9f12c70a-179d-4a28-803a-73bbb2b3df97.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "update phasedComponent pattern and switch direct stagedComponent callers to use it", + "packageName": "@fluentui-react-native/framework-base", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-icon-2d7e4a6e-0c5a-4f1f-b456-98beb80c1bff.json b/change/@fluentui-react-native-icon-2d7e4a6e-0c5a-4f1f-b456-98beb80c1bff.json new file mode 100644 index 0000000000..dbb1288ad6 --- /dev/null +++ b/change/@fluentui-react-native-icon-2d7e4a6e-0c5a-4f1f-b456-98beb80c1bff.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "update phasedComponent pattern and switch direct stagedComponent callers to use it", + "packageName": "@fluentui-react-native/icon", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-menu-52a2dd2f-433b-4a98-bbd2-02d1ca0c4de3.json b/change/@fluentui-react-native-menu-52a2dd2f-433b-4a98-bbd2-02d1ca0c4de3.json new file mode 100644 index 0000000000..0513030fb3 --- /dev/null +++ b/change/@fluentui-react-native-menu-52a2dd2f-433b-4a98-bbd2-02d1ca0c4de3.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "update phasedComponent pattern and switch direct stagedComponent callers to use it", + "packageName": "@fluentui-react-native/menu", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-notification-39168bfc-7644-4bb1-b193-784c84c637a8.json b/change/@fluentui-react-native-notification-39168bfc-7644-4bb1-b193-784c84c637a8.json new file mode 100644 index 0000000000..d7a9734f41 --- /dev/null +++ b/change/@fluentui-react-native-notification-39168bfc-7644-4bb1-b193-784c84c637a8.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "update phasedComponent pattern and switch direct stagedComponent callers to use it", + "packageName": "@fluentui-react-native/notification", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-overflow-913fd2cf-938c-4465-a1ae-3c42126abb1a.json b/change/@fluentui-react-native-overflow-913fd2cf-938c-4465-a1ae-3c42126abb1a.json new file mode 100644 index 0000000000..cf63194b97 --- /dev/null +++ b/change/@fluentui-react-native-overflow-913fd2cf-938c-4465-a1ae-3c42126abb1a.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "update phasedComponent pattern and switch direct stagedComponent callers to use it", + "packageName": "@fluentui-react-native/overflow", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-tablist-eae99f12-b52e-426c-938f-460f65a5ce4f.json b/change/@fluentui-react-native-tablist-eae99f12-b52e-426c-938f-460f65a5ce4f.json new file mode 100644 index 0000000000..2ad7de2a79 --- /dev/null +++ b/change/@fluentui-react-native-tablist-eae99f12-b52e-426c-938f-460f65a5ce4f.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "update phasedComponent pattern and switch direct stagedComponent callers to use it", + "packageName": "@fluentui-react-native/tablist", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-tooltip-d650af05-51c4-488a-878b-6dca19b33999.json b/change/@fluentui-react-native-tooltip-d650af05-51c4-488a-878b-6dca19b33999.json new file mode 100644 index 0000000000..98080bae98 --- /dev/null +++ b/change/@fluentui-react-native-tooltip-d650af05-51c4-488a-878b-6dca19b33999.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "update phasedComponent pattern and switch direct stagedComponent callers to use it", + "packageName": "@fluentui-react-native/tooltip", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} From f6b192859cd89211ee2d67a29b086337300caee6 Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Wed, 28 Jan 2026 18:10:42 -0800 Subject: [PATCH 03/29] fix use-slot to use new rendering patterns --- .../Dropdown/src/Dropdown/Dropdown.tsx | 3 +- .../src/component-patterns/directComponent.ts | 9 +++ .../src/component-patterns/phasedComponent.ts | 22 ++++- .../src/component-patterns/render.ts | 28 ++++--- packages/framework-base/src/index.ts | 10 ++- .../src/utilities/filterProps.ts | 14 ++++ .../framework/use-slot/src/useSlot.test.tsx | 28 ++++--- packages/framework/use-slot/src/useSlot.ts | 80 ++++++------------- 8 files changed, 107 insertions(+), 87 deletions(-) create mode 100644 packages/framework-base/src/component-patterns/directComponent.ts create mode 100644 packages/framework-base/src/utilities/filterProps.ts diff --git a/packages/experimental/Dropdown/src/Dropdown/Dropdown.tsx b/packages/experimental/Dropdown/src/Dropdown/Dropdown.tsx index 99b0d8986c..b72a9c8d5c 100644 --- a/packages/experimental/Dropdown/src/Dropdown/Dropdown.tsx +++ b/packages/experimental/Dropdown/src/Dropdown/Dropdown.tsx @@ -50,7 +50,8 @@ const Dropdown = compressible((props: DropdownPro [defaultRef], ); - const RootSlot = useSlot(View, props); + type PressableView = React.FunctionComponent; + const RootSlot = useSlot(View as unknown as PressableView, props); const ButtonSlot = useSlot(Button, buttonProps); const ExpandIconSlot = useSlot(Svg, expandIconProps); const ListboxSlot = useSlot(Listbox, listboxProps); diff --git a/packages/framework-base/src/component-patterns/directComponent.ts b/packages/framework-base/src/component-patterns/directComponent.ts new file mode 100644 index 0000000000..60cdb0d348 --- /dev/null +++ b/packages/framework-base/src/component-patterns/directComponent.ts @@ -0,0 +1,9 @@ +import type React from 'react'; + +/** + * @param component functional component, usually a closure, to make into a direct component + * @return the same component with the direct component flag set, return type is a pure function component + */ +export function directComponent(component: React.FunctionComponent): React.FunctionComponent { + return Object.assign(component, { _callDirect: true }); +} diff --git a/packages/framework-base/src/component-patterns/phasedComponent.ts b/packages/framework-base/src/component-patterns/phasedComponent.ts index a7d28a1026..84bda02243 100644 --- a/packages/framework-base/src/component-patterns/phasedComponent.ts +++ b/packages/framework-base/src/component-patterns/phasedComponent.ts @@ -1,6 +1,24 @@ -import type React from 'react'; +import React from 'react'; import { jsx, jsxs } from '../jsx-runtime'; -import type { PhasedComponent, PhasedRender } from './render.types'; +import type { ComposableFunction, PhasedComponent, PhasedRender } from './render.types'; + +export function getPhasedRender(component: React.ComponentType): PhasedRender | undefined { + // only a function component can have a phased render + if (typeof component !== 'function') { + // if this has a phased render function, return it + if ((component as PhasedComponent)._phasedRender) { + return (component as PhasedComponent)._phasedRender; + } else if ((component as ComposableFunction)._staged) { + // for backward compatibility check for staged render and return a wrapper that maps the signature + const staged = (component as ComposableFunction)._staged; + return (props: TProps) => { + const { children, ...rest } = props as React.PropsWithChildren; + return staged(rest as TProps, ...React.Children.toArray(children)); + }; + } + } + return undefined; +} /** * Take a phased render function and make a real component out of it, attaching the phased render function diff --git a/packages/framework-base/src/component-patterns/render.ts b/packages/framework-base/src/component-patterns/render.ts index 80f0848f2e..e4a5012397 100644 --- a/packages/framework-base/src/component-patterns/render.ts +++ b/packages/framework-base/src/component-patterns/render.ts @@ -4,7 +4,7 @@ import type { RenderType, RenderResult, DirectComponent, LegacyDirectComponent } export type CustomRender = () => RenderResult; -function asDirectComponent(type: RenderType): DirectComponent | undefined { +export function asDirectComponent(type: RenderType): DirectComponent | undefined { if (typeof type === 'function' && (type as DirectComponent)._callDirect) { return type as DirectComponent; } @@ -22,7 +22,7 @@ export function renderForJsxRuntime( type: React.ElementType, props: React.PropsWithChildren, key?: React.Key, - jsxFn: typeof ReactJSX.jsx = ReactJSX.jsx, + jsxFn: typeof ReactJSX.jsx = undefined, ): RenderResult { const legacyDirect = asLegacyDirectComponent(type); if (legacyDirect) { @@ -35,20 +35,24 @@ export function renderForJsxRuntime( const newProps = { ...props, key }; return directComponent(newProps); } + + // auto-detect whether to use jsx or jsxs based on number of children, 0 or 1 = jsx, more than 1 = jsxs + if (!jsxFn) { + const children = props.children; + if (Array.isArray(children) && children.length > 1) { + jsxFn = ReactJSX.jsxs; + } else { + jsxFn = ReactJSX.jsx; + } + } + // now call the appropriate jsx function to return jsxFn(type, props, key); } export function renderForClassicRuntime(type: RenderType, props: TProps, ...children: React.ReactNode[]): RenderResult { - const legacyDirect = asLegacyDirectComponent(type); - if (legacyDirect) { - return legacyDirect(props, ...children) as RenderResult; - } - const directComponent = asDirectComponent(type); - if (directComponent) { - const newProps = { ...props, children }; - return directComponent(newProps); - } - return React.createElement(type, props, ...children); + // if it is a non-string type with _canCompose set just call the function directly, otherwise call createElement as normal + const propsWithChildren = { children, ...props }; + return renderForJsxRuntime(type as React.ElementType, propsWithChildren); } export const renderSlot = renderForClassicRuntime; diff --git a/packages/framework-base/src/index.ts b/packages/framework-base/src/index.ts index c37f7fdbcb..9581c8453d 100644 --- a/packages/framework-base/src/index.ts +++ b/packages/framework-base/src/index.ts @@ -20,10 +20,9 @@ export { mergeStyles } from './merge-props/mergeStyles'; export { mergeProps } from './merge-props/mergeProps'; // component pattern exports -export { renderForClassicRuntime, renderForJsxRuntime, renderSlot } from './component-patterns/render'; +export { renderForJsxRuntime, renderSlot, asDirectComponent } from './component-patterns/render'; export type { DirectComponent, - DirectComponentFunction, LegacyDirectComponent, PhasedComponent, PhasedRender, @@ -35,7 +34,12 @@ export type { SlotFn, NativeReactType, } from './component-patterns/render.types'; -export { phasedComponent } from './component-patterns/phasedComponent'; +export { directComponent } from './component-patterns/directComponent'; +export { getPhasedRender, phasedComponent } from './component-patterns/phasedComponent'; export { withSlots } from './component-patterns/withSlots'; export { stagedComponent } from './component-patterns/stagedComponent'; export { jsx, jsxs } from './jsx-runtime'; + +// general utilities +export { filterProps } from './utilities/filterProps'; +export type { PropsFilter } from './utilities/filterProps'; diff --git a/packages/framework-base/src/utilities/filterProps.ts b/packages/framework-base/src/utilities/filterProps.ts new file mode 100644 index 0000000000..b3ee7bbe93 --- /dev/null +++ b/packages/framework-base/src/utilities/filterProps.ts @@ -0,0 +1,14 @@ +import { mergeProps } from '../merge-props/mergeProps'; + +export type PropsFilter = (propName: string) => boolean; + +export function filterProps(props: TProps, filter?: PropsFilter): TProps { + if (filter && typeof props === 'object' && !Array.isArray(props)) { + const propsToRemove = filter ? Object.keys(props).filter((key) => !filter(key)) : undefined; + if (propsToRemove?.length > 0) { + const propsToRemoveObj = Object.fromEntries(propsToRemove.map((prop) => [prop, undefined])) as TProps; + return mergeProps(props, propsToRemoveObj); + } + } + return props; +} diff --git a/packages/framework/use-slot/src/useSlot.test.tsx b/packages/framework/use-slot/src/useSlot.test.tsx index f05d40778b..2cfbe4f7d1 100644 --- a/packages/framework/use-slot/src/useSlot.test.tsx +++ b/packages/framework/use-slot/src/useSlot.test.tsx @@ -6,16 +6,15 @@ import { Text, View } from 'react-native'; import { mergeStyles } from '@fluentui-react-native/framework-base'; import * as renderer from 'react-test-renderer'; -import type { NativeReactType } from '@fluentui-react-native/framework-base'; -import { stagedComponent } from '@fluentui-react-native/framework-base'; +import { phasedComponent } from '@fluentui-react-native/framework-base'; import { useSlot } from './useSlot'; -type PluggableTextProps = React.PropsWithChildren & { inner?: NativeReactType | React.FunctionComponent }; +type PluggableTextProps = React.PropsWithChildren & { inner?: React.FunctionComponent }; /** * Text component that demonstrates pluggability, in this case via passing an alternative component type into a prop called inner. */ -const PluggableText = stagedComponent((props: PluggableTextProps) => { +const PluggableText = phasedComponent((props: PluggableTextProps) => { // start by splitting inner and children from the incoming props const { inner, ...rest } = props; @@ -24,15 +23,15 @@ const PluggableText = stagedComponent((props: PluggableTextProps) => { const Inner = useSlot(inner || Text, rest); // return a closure for finishing off render - return (extra: TextProps, children: React.ReactNode) => {children}; + return (extra: TextProps) => { + // split children from extra props + const { children, ...rest } = extra; + return {children}; + }; }); PluggableText.displayName = 'PluggableText'; -const useStyledStagedText = ( - props: PluggableTextProps, - baseStyle: TextProps['style'], - inner?: NativeReactType | React.FunctionComponent, -) => { +const useStyledStagedText = (props: PluggableTextProps, baseStyle: TextProps['style'], inner?: React.FunctionComponent) => { // split out any passed in style const { style, ...rest } = props; @@ -43,10 +42,13 @@ const useStyledStagedText = ( const InnerText = useSlot(PluggableText, mergedProps); // return a closure to complete the staged pattern - return (extra: PluggableTextProps, children: React.ReactNode) => {children}; + return (extra: PluggableTextProps) => { + const { children, ...rest } = extra; + return {children}; + }; }; -const HeaderText = stagedComponent((props: PluggableTextProps) => { +const HeaderText = phasedComponent((props: PluggableTextProps) => { // could be done outside but showing the pattern of using useMemo to avoid creating a new object on every execution const baseStyle = React.useMemo(() => ({ fontSize: 24, fontWeight: 'bold' }), []); @@ -54,7 +56,7 @@ const HeaderText = stagedComponent((props: PluggableTextProps) => { return useStyledStagedText(props, baseStyle); }); -const CaptionText = stagedComponent((props: PluggableTextProps) => { +const CaptionText = phasedComponent((props: PluggableTextProps) => { // memo to not recreate style every time const baseStyle = React.useMemo(() => ({ fontFamily: 'Arial', fontWeight: '200' }), []); diff --git a/packages/framework/use-slot/src/useSlot.ts b/packages/framework/use-slot/src/useSlot.ts index d473437ac0..86fb0fb801 100644 --- a/packages/framework/use-slot/src/useSlot.ts +++ b/packages/framework/use-slot/src/useSlot.ts @@ -1,72 +1,40 @@ import * as React from 'react'; -import { mergeProps } from '@fluentui-react-native/framework-base'; - -import type { SlotFn, NativeReactType, FinalRender } from '@fluentui-react-native/framework-base'; -import type { ComposableFunction, StagedRender } from '@fluentui-react-native/framework-base'; - -/** - * - * @param slot - component which may or may not be built using the staged pattern - * @returns - the staged function or undefined - */ -function getStagedRender(slot: NativeReactType | ComposableFunction): StagedRender | undefined { - return (typeof slot === 'function' && (slot as ComposableFunction)._staged) || undefined; -} +import { mergeProps, getPhasedRender, directComponent, renderForJsxRuntime, filterProps } from '@fluentui-react-native/framework-base'; +import type { PropsFilter } from '@fluentui-react-native/framework-base'; /** * useSlot hook function, allows authoring against pluggable slots as well as allowing components to be called as functions rather than * via createElement if they support it. * * @param component - any kind of component that can be rendered as part of the tree - * @param props - props, particularly the portion that includes styles, that should be passed to the component. These will be merged with what are specified in the JSX tree + * @param initialProps - props, particularly the portion that includes styles, that should be passed to the component. These will be merged with what are specified in the JSX tree * @param filter - optional filter that will prune the props before forwarding to the component * @returns */ export function useSlot( - component: NativeReactType | ComposableFunction, - props: TProps, - filter?: (propName: string) => boolean, -): SlotFn { - // some types to make things cleaner - type ResultHolder = { result: FinalRender | TProps }; - type MemoTuple = [SlotFn, ResultHolder]; - - // extract the staged component function if that pattern is being used, will be undefined if it is a standard component - const stagedComponent = getStagedRender(component); + component: React.ComponentType, + initialProps: TProps, + filter?: PropsFilter, +): React.ComponentType { + // filter the initial props if a filter is specified + const filteredProps = filterProps(initialProps, filter); // build the secondary processing function and the result holder, done via useMemo so the function identity stays the same. Rebuilding the closure every time would invalidate render - const [fn, results] = React.useMemo(() => { - // create a holder object so values can be passed to the closure - const resultHolder = {} as ResultHolder; - - // create a function that is in the right format for rendering in JSX/TSX, this has children split out - const slotFn: SlotFn = (extraProps: TProps, ...children: React.ReactNode[]) => { - const result = resultHolder.result; - - // result is either a function (if a staged component) or a set of props passed to useSlot (and sent here via resultHolder) - let props: TProps = typeof result === 'function' ? extraProps : mergeProps(result, extraProps); - - // if we have a filter specified, run it creating a prop collection of { [key]: undefined } which will end up deleting the values via mergeStyles - const propsToRemove = filter ? Object.keys(props).filter((key) => !filter(key)) : undefined; - if (propsToRemove?.length > 0) { - props = mergeProps(props, Object.assign({}, ...propsToRemove.map((prop) => ({ [prop]: undefined }))) as unknown as TProps); - } - - // now if result was a function then call it directly, if not go through the standard React.createElement process - // Type assertion is safe here because result is either FinalRender (from stagedComponent) or TProps (props object) - return typeof result === 'function' - ? (result as FinalRender)(props, ...children) - : React.createElement(component, props, ...children); - }; - // mark the slotFn so that withSlots knows to handle it differently - slotFn._canCompose = true; - return [slotFn, resultHolder]; + return React.useMemo>(() => { + // extract the phased component function if that pattern is being used, will be undefined if it is a standard component + const phasedRender = getPhasedRender(component); + + // do the first phase render with the initial props if we are using the staged pattern. This is typically getting + // styles and tokens in place a single time for the component. + const finalRender = phasedRender ? phasedRender(initialProps) : component; + + // now return a direct component function that can be used in JSX/TSX, this pattern is safe since we won't be using + // hooks in this closure + return directComponent((innerProps: TProps) => { + const finalInner = filterProps(innerProps, filter); + const finalProps = phasedRender ? finalInner : mergeProps(filteredProps, finalInner); + return renderForJsxRuntime(finalRender, finalProps); + }); }, [component, filter]); - - // if it is a staged component executre the first part with the props, otherwise just remember the props - results.result = stagedComponent ? stagedComponent(props) : props; - - // return the function - return fn; } From b5a490034b83e26ac4f8ca36e10eeb9f7f4bb8a3 Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Wed, 28 Jan 2026 18:11:18 -0800 Subject: [PATCH 04/29] Change files --- ...tive-dropdown-87c83670-53db-4b52-b2d1-85e71f24ba52.json | 7 +++++++ ...tive-use-slot-04b210fb-fca7-4403-818f-9560758017cb.json | 7 +++++++ 2 files changed, 14 insertions(+) create mode 100644 change/@fluentui-react-native-dropdown-87c83670-53db-4b52-b2d1-85e71f24ba52.json create mode 100644 change/@fluentui-react-native-use-slot-04b210fb-fca7-4403-818f-9560758017cb.json diff --git a/change/@fluentui-react-native-dropdown-87c83670-53db-4b52-b2d1-85e71f24ba52.json b/change/@fluentui-react-native-dropdown-87c83670-53db-4b52-b2d1-85e71f24ba52.json new file mode 100644 index 0000000000..49e28bb60d --- /dev/null +++ b/change/@fluentui-react-native-dropdown-87c83670-53db-4b52-b2d1-85e71f24ba52.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "fix use-slot to use new rendering patterns", + "packageName": "@fluentui-react-native/dropdown", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-use-slot-04b210fb-fca7-4403-818f-9560758017cb.json b/change/@fluentui-react-native-use-slot-04b210fb-fca7-4403-818f-9560758017cb.json new file mode 100644 index 0000000000..a581971db0 --- /dev/null +++ b/change/@fluentui-react-native-use-slot-04b210fb-fca7-4403-818f-9560758017cb.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "fix use-slot to use new rendering patterns", + "packageName": "@fluentui-react-native/use-slot", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} From b0eaea7498db29f8dc8d36dcf7f6c5d8f1134385 Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Thu, 29 Jan 2026 11:57:47 -0800 Subject: [PATCH 05/29] tighten up typing for framework, fixing the resulting errors --- .../CompoundButton/CompoundButton.mobile.tsx | 13 ++- .../src/ToggleButton/ToggleButton.android.tsx | 14 +++- .../Notification/src/Notification.tsx | 6 +- .../Notification/src/Notification.types.ts | 4 +- packages/components/Switch/src/Switch.tsx | 4 +- .../Checkbox/src/Checkbox.macos.tsx | 4 +- .../experimental/Expander/src/Expander.tsx | 2 +- .../Expander/src/Expander.types.ts | 3 +- .../Expander/src/ExpanderNativeComponent.ts | 6 +- .../MenuButton/src/MenuButton.types.ts | 10 ++- .../src/component-patterns/directComponent.ts | 4 +- .../src/component-patterns/phasedComponent.ts | 4 +- .../src/component-patterns/render.types.ts | 16 +++- packages/framework-base/src/index.ts | 1 + .../composition/src/composeFactory.ts | 20 +++-- packages/framework/use-slot/src/index.ts | 1 + .../framework/use-slot/src/useSlot.test.tsx | 11 +-- packages/framework/use-slot/src/useSlot.ts | 18 ++-- .../useSlots.samples.test.tsx.snap | 84 +++++++++---------- .../framework/use-slots/src/buildUseSlots.ts | 13 +-- .../use-slots/src/useSlots.samples.test.tsx | 47 +++++------ .../framework/use-styling/src/buildProps.ts | 4 +- 22 files changed, 163 insertions(+), 126 deletions(-) diff --git a/packages/components/Button/src/CompoundButton/CompoundButton.mobile.tsx b/packages/components/Button/src/CompoundButton/CompoundButton.mobile.tsx index 961cfaea3a..59ad0f67a4 100644 --- a/packages/components/Button/src/CompoundButton/CompoundButton.mobile.tsx +++ b/packages/components/Button/src/CompoundButton/CompoundButton.mobile.tsx @@ -1,14 +1,21 @@ /** @jsxImportSource @fluentui-react-native/framework-base */ -import { View } from 'react-native'; +import { View, type ViewProps } from 'react-native'; import { compose } from '@fluentui-react-native/framework'; import { Icon } from '@fluentui-react-native/icon'; import { TextV1 as Text } from '@fluentui-react-native/text'; -import type { CompoundButtonType } from './CompoundButton.types'; +import type { CompoundButtonSlotProps, CompoundButtonType } from './CompoundButton.types'; import { compoundButtonName } from './CompoundButton.types'; -export const CompoundButton = compose({ +export interface MobileSlotProps extends CompoundButtonSlotProps { + root: ViewProps; +} +export interface CompoundButtonMobileType extends CompoundButtonType { + slotProps: MobileSlotProps; +} + +export const CompoundButton = compose({ displayName: compoundButtonName, slots: { root: View, diff --git a/packages/components/Button/src/ToggleButton/ToggleButton.android.tsx b/packages/components/Button/src/ToggleButton/ToggleButton.android.tsx index 7e0bc34376..edf7dea14e 100644 --- a/packages/components/Button/src/ToggleButton/ToggleButton.android.tsx +++ b/packages/components/Button/src/ToggleButton/ToggleButton.android.tsx @@ -1,14 +1,22 @@ /** @jsxImportSource @fluentui-react-native/framework-base */ -import { View } from 'react-native'; +import { View, type ViewProps } from 'react-native'; import { compose } from '@fluentui-react-native/framework'; import { Icon } from '@fluentui-react-native/icon'; import { TextV1 as Text } from '@fluentui-react-native/text'; -import type { ToggleButtonType } from './ToggleButton.types'; +import type { ToggleButtonSlotProps, ToggleButtonType } from './ToggleButton.types'; import { toggleButtonName } from './ToggleButton.types'; -export const ToggleButton = compose({ +interface ToggleButtonSlotPropsAndroid extends ToggleButtonSlotProps { + root: ViewProps; +} + +interface ToggleButtonAndroidType extends ToggleButtonType { + slotProps: ToggleButtonSlotPropsAndroid; +} + +export const ToggleButton = compose({ displayName: toggleButtonName, slots: { root: View, diff --git a/packages/components/Notification/src/Notification.tsx b/packages/components/Notification/src/Notification.tsx index f3d1980ff3..5e72a34b81 100644 --- a/packages/components/Notification/src/Notification.tsx +++ b/packages/components/Notification/src/Notification.tsx @@ -1,5 +1,5 @@ /** @jsxImportSource @fluentui-react-native/framework-base */ -import type { PressableProps, ViewStyle, ViewProps } from 'react-native'; +import type { ViewStyle, ViewProps } from 'react-native'; import { useWindowDimensions, View } from 'react-native'; import type { SizeClassIOS } from '@fluentui-react-native/experimental-appearance-additions'; @@ -9,7 +9,7 @@ import type { UseSlots } from '@fluentui-react-native/framework'; import { compose, mergeProps, memoize } from '@fluentui-react-native/framework'; import { Icon, createIconProps } from '@fluentui-react-native/icon'; import type { InteractionEvent } from '@fluentui-react-native/interactive-hooks'; -import { Pressable } from '@fluentui-react-native/pressable'; +import { type IPressableProps, Pressable } from '@fluentui-react-native/pressable'; import { Body2, Body2Strong } from '@fluentui-react-native/text'; import { NotificationButton, createNotificationButtonProps } from './Notification.helper'; @@ -54,7 +54,7 @@ export const Notification = compose({ return (final: NotificationProps, ...children: React.ReactNode[]) => { const { variant, icon, title, action, onActionPress, ...rest } = mergeProps(userProps, final); - const mergedProps = mergeProps(rest, rootStyle); + const mergedProps = mergeProps(rest, rootStyle); const iconProps = createIconProps(icon); const notificationButtonProps = createNotificationButtonProps(userProps); diff --git a/packages/components/Notification/src/Notification.types.ts b/packages/components/Notification/src/Notification.types.ts index 58ec13d41a..56035d3366 100644 --- a/packages/components/Notification/src/Notification.types.ts +++ b/packages/components/Notification/src/Notification.types.ts @@ -1,4 +1,4 @@ -import type { PressableProps } from 'react-native'; +import type { IPressableProps } from '@fluentui-react-native/pressable'; import type { IViewProps, ITextProps } from '@fluentui-react-native/adapters'; import type { ButtonProps } from '@fluentui-react-native/button'; @@ -59,7 +59,7 @@ export type NotificationProps = React.PropsWithChildren<{ }>; export interface NotificationSlotProps { - root: PressableProps; + root: IPressableProps; icon?: IconProps; contentContainer: IViewProps; title?: ITextProps; diff --git a/packages/components/Switch/src/Switch.tsx b/packages/components/Switch/src/Switch.tsx index ed546c91ca..755cbf53b6 100644 --- a/packages/components/Switch/src/Switch.tsx +++ b/packages/components/Switch/src/Switch.tsx @@ -42,8 +42,8 @@ export const Switch = compose({ slots: { root: Pressable, label: Text, - track: Animated.View, // Conversion from View to Animated.View for Animated API to work - thumb: Animated.View, + track: Animated.View as unknown as typeof View, // Conversion from View to Animated.View for Animated API to work + thumb: Animated.View as unknown as typeof View, // Conversion from View to Animated.View for Animated API to work toggleContainer: View, onOffTextContainer: View, onOffText: Text, diff --git a/packages/experimental/Checkbox/src/Checkbox.macos.tsx b/packages/experimental/Checkbox/src/Checkbox.macos.tsx index 168bcf4fcd..eff1a7751a 100644 --- a/packages/experimental/Checkbox/src/Checkbox.macos.tsx +++ b/packages/experimental/Checkbox/src/Checkbox.macos.tsx @@ -4,16 +4,16 @@ * @format */ /** @jsxImportSource @fluentui-react-native/framework-base */ -import type { IViewProps } from '@fluentui-react-native/adapters'; import type { CheckboxTokens, CheckboxProps, CheckboxState } from '@fluentui-react-native/checkbox'; import { checkboxName } from '@fluentui-react-native/checkbox'; import type { UseSlots } from '@fluentui-react-native/framework'; import { compose, mergeProps, buildProps } from '@fluentui-react-native/framework'; import NativeCheckboxView from './MacOSCheckboxNativeComponent'; +import type { NativeProps } from './MacOSCheckboxNativeComponent'; interface CheckboxSlotPropsMacOS { - root: React.PropsWithRef & { onPress: (e: any) => void }; + root: React.PropsWithRef; } interface CheckboxTypeMacOS { diff --git a/packages/experimental/Expander/src/Expander.tsx b/packages/experimental/Expander/src/Expander.tsx index 3f457ecc96..cc03e968d2 100644 --- a/packages/experimental/Expander/src/Expander.tsx +++ b/packages/experimental/Expander/src/Expander.tsx @@ -12,7 +12,7 @@ import { compose, mergeProps, buildProps } from '@fluentui-react-native/framewor import type { ExpanderType, ExpanderProps, ExpanderViewProps } from './Expander.types'; import { expanderName } from './Expander.types'; -import ExpanderComponent from './ExpanderNativeComponent'; +import { ExpanderComponent } from './ExpanderNativeComponent'; function delay(ms: number) { return new Promise((resolve) => setTimeout(resolve, ms)); diff --git a/packages/experimental/Expander/src/Expander.types.ts b/packages/experimental/Expander/src/Expander.types.ts index adc16ff164..c948415654 100644 --- a/packages/experimental/Expander/src/Expander.types.ts +++ b/packages/experimental/Expander/src/Expander.types.ts @@ -1,5 +1,6 @@ import type { PropsWithChildren } from 'react'; import type { ColorValue } from 'react-native'; +import type { NativeProps } from './ExpanderNativeComponent'; export const expanderName = 'Expander'; @@ -157,6 +158,6 @@ export interface ExpanderType { props: ExpanderProps; tokens: ExpanderTokens; slotProps: { - root: ExpanderViewProps; + root: NativeProps; }; } diff --git a/packages/experimental/Expander/src/ExpanderNativeComponent.ts b/packages/experimental/Expander/src/ExpanderNativeComponent.ts index 6e49281a4f..fb4742ccad 100644 --- a/packages/experimental/Expander/src/ExpanderNativeComponent.ts +++ b/packages/experimental/Expander/src/ExpanderNativeComponent.ts @@ -44,6 +44,6 @@ export interface NativeProps extends ViewProps { onExpanding?: DirectEventHandler; } -export default codegenNativeComponent( - 'ExpanderView' -) as HostComponent; \ No newline at end of file +export const ExpanderComponent: HostComponent = codegenNativeComponent('ExpanderView'); + +export default ExpanderComponent; diff --git a/packages/experimental/MenuButton/src/MenuButton.types.ts b/packages/experimental/MenuButton/src/MenuButton.types.ts index cd95116c15..da3a932358 100644 --- a/packages/experimental/MenuButton/src/MenuButton.types.ts +++ b/packages/experimental/MenuButton/src/MenuButton.types.ts @@ -1,10 +1,14 @@ import type { ButtonProps } from '@fluentui-react-native/button'; import type { ContextualMenuItemProps, ContextualMenuProps, SubmenuProps } from '@fluentui-react-native/contextual-menu'; import type { FontTokens, IForegroundColorTokens, IBackgroundColorTokens, IBorderTokens } from '@fluentui-react-native/tokens'; -import type { SvgProps, XmlProps } from 'react-native-svg'; +import type { XmlProps } from 'react-native-svg'; export const menuButtonName = 'MenuButton'; +export interface FragmentProps { + children?: React.ReactNode; +} + export interface MenuButtonContext { showContextualMenu?: boolean; } @@ -30,8 +34,8 @@ export interface MenuButtonProps extends ButtonProps { } export type MenuButtonSlotProps = { - root: MenuButtonProps; - chevronIcon: SvgProps | XmlProps; + root: FragmentProps; + chevronIcon: XmlProps; }; export interface MenuButtonType { diff --git a/packages/framework-base/src/component-patterns/directComponent.ts b/packages/framework-base/src/component-patterns/directComponent.ts index 60cdb0d348..4c085fc73d 100644 --- a/packages/framework-base/src/component-patterns/directComponent.ts +++ b/packages/framework-base/src/component-patterns/directComponent.ts @@ -1,9 +1,9 @@ -import type React from 'react'; +import type { FunctionComponent } from './render.types'; /** * @param component functional component, usually a closure, to make into a direct component * @return the same component with the direct component flag set, return type is a pure function component */ -export function directComponent(component: React.FunctionComponent): React.FunctionComponent { +export function directComponent(component: FunctionComponent): FunctionComponent { return Object.assign(component, { _callDirect: true }); } diff --git a/packages/framework-base/src/component-patterns/phasedComponent.ts b/packages/framework-base/src/component-patterns/phasedComponent.ts index 84bda02243..b07f97e1ab 100644 --- a/packages/framework-base/src/component-patterns/phasedComponent.ts +++ b/packages/framework-base/src/component-patterns/phasedComponent.ts @@ -1,6 +1,6 @@ import React from 'react'; import { jsx, jsxs } from '../jsx-runtime'; -import type { ComposableFunction, PhasedComponent, PhasedRender } from './render.types'; +import type { ComposableFunction, PhasedComponent, PhasedRender, FunctionComponent } from './render.types'; export function getPhasedRender(component: React.ComponentType): PhasedRender | undefined { // only a function component can have a phased render @@ -25,7 +25,7 @@ export function getPhasedRender(component: React.ComponentType): * so it can be split if used in that manner. * @param getInnerPhase - phased render function to wrap into a staged component */ -export function phasedComponent(getInnerPhase: PhasedRender): PhasedComponent { +export function phasedComponent(getInnerPhase: PhasedRender): FunctionComponent { return Object.assign( (props: React.PropsWithChildren) => { // pull out children from props diff --git a/packages/framework-base/src/component-patterns/render.types.ts b/packages/framework-base/src/component-patterns/render.types.ts index a84d18cd3b..914ae42932 100644 --- a/packages/framework-base/src/component-patterns/render.types.ts +++ b/packages/framework-base/src/component-patterns/render.types.ts @@ -29,12 +29,20 @@ export type NativeReactType = RenderType; /** * type of the render function, not a FunctionComponent to help prevent hook usage */ -export type DirectComponentFunction = (props: TProps) => RenderResult; +export type FunctionComponentCore = (props: TProps) => RenderResult; + +/** + * A function component that returns an element type. This allows for the empty call props usage for native + * components, as well as handles the returns of React components. + */ +export type FunctionComponent = FunctionComponentCore & { + displayName?: string; +}; /** * The full component definition that has the attached properties to allow the jsx handlers to render it directly. */ -export type DirectComponent = DirectComponentFunction & { +export type DirectComponent = FunctionComponentCore & { displayName?: string; _callDirect?: boolean; }; @@ -84,7 +92,7 @@ export type PhasedRender = (props: TProps) => React.ComponentType = React.FunctionComponent & { +export type PhasedComponent = FunctionComponent & { _phasedRender?: PhasedRender; }; /** @@ -103,7 +111,7 @@ export type StagedRender = (props: TProps, ...args: any[]) => FinalRende * Signature for a component that uses the staged render pattern. * @deprecated Use TwoStageRender instead */ -export type ComposableFunction = React.FunctionComponent & { _staged?: StagedRender }; +export type ComposableFunction = FunctionComponent & { _staged?: StagedRender }; /** * A type aggregating all the custom types that can be used in the render process. diff --git a/packages/framework-base/src/index.ts b/packages/framework-base/src/index.ts index 9581c8453d..ac66d45af6 100644 --- a/packages/framework-base/src/index.ts +++ b/packages/framework-base/src/index.ts @@ -23,6 +23,7 @@ export { mergeProps } from './merge-props/mergeProps'; export { renderForJsxRuntime, renderSlot, asDirectComponent } from './component-patterns/render'; export type { DirectComponent, + FunctionComponent, LegacyDirectComponent, PhasedComponent, PhasedRender, diff --git a/packages/framework/composition/src/composeFactory.ts b/packages/framework/composition/src/composeFactory.ts index c7fc4c32dc..f550b7243d 100644 --- a/packages/framework/composition/src/composeFactory.ts +++ b/packages/framework/composition/src/composeFactory.ts @@ -36,9 +36,9 @@ export type ComposeFactoryOptions = ComposableFunction & { __options: ComposeFactoryOptions; customize: (...tokens: TokenSettings[]) => ComposeFactoryComponent; - compose: ( - options: Partial>, - ) => ComposeFactoryComponent; + compose( + options: Partial>, + ): ComposeFactoryComponent; } & TStatics; /** @@ -79,9 +79,17 @@ export function composeFactory) => - composeFactory( - immutableMergeCore(mergeOptions, options, customOptions) as LocalOptions, + component.compose = ( + customOptions: Partial>, + ) => + composeFactory( + immutableMergeCore(mergeOptions, options, customOptions as object) as unknown as ComposeFactoryOptions< + TProps, + TOverrideSlotProps, + TTokens, + TTheme, + TStatics + >, themeHelper, ); diff --git a/packages/framework/use-slot/src/index.ts b/packages/framework/use-slot/src/index.ts index 8795ea49ed..366f91eebc 100644 --- a/packages/framework/use-slot/src/index.ts +++ b/packages/framework/use-slot/src/index.ts @@ -1,4 +1,5 @@ export { useSlot } from './useSlot'; +export type { ComponentType } from './useSlot'; // re-export functions and types from framework-base that used to be here to not break existing imports export { renderSlot, stagedComponent, withSlots } from '@fluentui-react-native/framework-base'; diff --git a/packages/framework/use-slot/src/useSlot.test.tsx b/packages/framework/use-slot/src/useSlot.test.tsx index 2cfbe4f7d1..fe61bab283 100644 --- a/packages/framework/use-slot/src/useSlot.test.tsx +++ b/packages/framework/use-slot/src/useSlot.test.tsx @@ -3,13 +3,13 @@ import * as React from 'react'; import type { TextProps } from 'react-native'; import { Text, View } from 'react-native'; -import { mergeStyles } from '@fluentui-react-native/framework-base'; +import { type FunctionComponent, mergeStyles } from '@fluentui-react-native/framework-base'; import * as renderer from 'react-test-renderer'; import { phasedComponent } from '@fluentui-react-native/framework-base'; import { useSlot } from './useSlot'; -type PluggableTextProps = React.PropsWithChildren & { inner?: React.FunctionComponent }; +type PluggableTextProps = TextProps & { inner?: FunctionComponent }; /** * Text component that demonstrates pluggability, in this case via passing an alternative component type into a prop called inner. @@ -32,11 +32,8 @@ const PluggableText = phasedComponent((props: PluggableTextProps) => { PluggableText.displayName = 'PluggableText'; const useStyledStagedText = (props: PluggableTextProps, baseStyle: TextProps['style'], inner?: React.FunctionComponent) => { - // split out any passed in style - const { style, ...rest } = props; - // create merged props to pass in to the inner slot - const mergedProps = { ...rest, style: mergeStyles(baseStyle, style), ...(inner && { inner }) }; + const mergedProps = { ...props, style: mergeStyles(baseStyle, props.style), ...(inner && { inner }) } as PluggableTextProps; // create a slot based on the pluggable text const InnerText = useSlot(PluggableText, mergedProps); @@ -65,7 +62,7 @@ const CaptionText = phasedComponent((props: PluggableTextProps) => { }); // Control authored as simple containment -const HeaderCaptionText1 = (props: React.PropsWithChildren) => { +const HeaderCaptionText1 = (props: TextProps) => { const { children, ...rest } = props; const baseStyle = React.useMemo(() => ({ fontSize: 24, fontWeight: 'bold' }), []); const mergedProps = { ...rest, style: mergeStyles(baseStyle, props.style) }; diff --git a/packages/framework/use-slot/src/useSlot.ts b/packages/framework/use-slot/src/useSlot.ts index 86fb0fb801..c3c7e566ab 100644 --- a/packages/framework/use-slot/src/useSlot.ts +++ b/packages/framework/use-slot/src/useSlot.ts @@ -1,7 +1,9 @@ import * as React from 'react'; import { mergeProps, getPhasedRender, directComponent, renderForJsxRuntime, filterProps } from '@fluentui-react-native/framework-base'; -import type { PropsFilter } from '@fluentui-react-native/framework-base'; +import type { PropsFilter, FunctionComponent } from '@fluentui-react-native/framework-base'; + +export type ComponentType = React.ComponentType; /** * useSlot hook function, allows authoring against pluggable slots as well as allowing components to be called as functions rather than @@ -14,27 +16,27 @@ import type { PropsFilter } from '@fluentui-react-native/framework-base'; */ export function useSlot( component: React.ComponentType, - initialProps: TProps, + initialProps: Partial, filter?: PropsFilter, -): React.ComponentType { +): FunctionComponent { // filter the initial props if a filter is specified const filteredProps = filterProps(initialProps, filter); // build the secondary processing function and the result holder, done via useMemo so the function identity stays the same. Rebuilding the closure every time would invalidate render - return React.useMemo>(() => { + return React.useMemo>(() => { // extract the phased component function if that pattern is being used, will be undefined if it is a standard component - const phasedRender = getPhasedRender(component); + const phasedRender = getPhasedRender(component as React.ComponentType); // do the first phase render with the initial props if we are using the staged pattern. This is typically getting // styles and tokens in place a single time for the component. - const finalRender = phasedRender ? phasedRender(initialProps) : component; + const finalRender = phasedRender ? phasedRender(initialProps as TProps) : component; // now return a direct component function that can be used in JSX/TSX, this pattern is safe since we won't be using // hooks in this closure return directComponent((innerProps: TProps) => { - const finalInner = filterProps(innerProps, filter); + const finalInner = filterProps(innerProps, filter); const finalProps = phasedRender ? finalInner : mergeProps(filteredProps, finalInner); - return renderForJsxRuntime(finalRender, finalProps); + return renderForJsxRuntime(finalRender as React.ComponentType, finalProps); }); }, [component, filter]); } diff --git a/packages/framework/use-slots/src/__snapshots__/useSlots.samples.test.tsx.snap b/packages/framework/use-slots/src/__snapshots__/useSlots.samples.test.tsx.snap index 19df4c49d9..f2bfa190bc 100644 --- a/packages/framework/use-slots/src/__snapshots__/useSlots.samples.test.tsx.snap +++ b/packages/framework/use-slots/src/__snapshots__/useSlots.samples.test.tsx.snap @@ -1,8 +1,8 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`useSlots sample code test suite renders sample 1 - the two types of basic bold text components 1`] = ` -
- + Staged component at one level - - + Standard component of a single level - -
+ + `; exports[`useSlots sample code test suite renders sample 2 = the two types of two level header components 1`] = `
- Staged component with two levels - - + Standard component with two levels - +
`; @@ -57,7 +57,7 @@ exports[`useSlots sample code test suite renders sample 3 - the two types of hig --- SIMPLE USAGE COMPARISON --- -
- Standard HOC - -
-
+ + - Staged HOC - -
+ + --- COMPARISON WITH CAPTIONS --- -
- Standard HOC with Caption - - + Caption text - -
-
+ + - Staged HOC with Caption - - + Caption text - -
+ + --- COMPARISON WITH CAPTIONS AND CUSTOMIZATIONS --- -
- Standard HOC with caption and customizations - - + Caption text - -
-
+ + - Staged HOC with caption and customizations - - + Caption text - -
+ + `; diff --git a/packages/framework/use-slots/src/buildUseSlots.ts b/packages/framework/use-slots/src/buildUseSlots.ts index 0ed9492d54..8a7cdfcd74 100644 --- a/packages/framework/use-slots/src/buildUseSlots.ts +++ b/packages/framework/use-slots/src/buildUseSlots.ts @@ -1,5 +1,5 @@ -import type { ComposableFunction, SlotFn, NativeReactType } from '@fluentui-react-native/framework-base'; -import { useSlot } from '@fluentui-react-native/use-slot'; +import { useSlot, type ComponentType } from '@fluentui-react-native/use-slot'; +import type { FunctionComponent, PropsFilter } from '@fluentui-react-native/framework-base'; // type AsObject = T extends object ? T : never @@ -8,11 +8,11 @@ import { useSlot } from '@fluentui-react-native/use-slot'; */ type UseStyling = (...props: unknown[]) => TSlotProps; -export type Slots = { [K in keyof TSlotProps]: SlotFn }; +export type Slots = { [K in keyof TSlotProps]: FunctionComponent }; export type UseSlotOptions = { - slots: { [K in keyof TSlotProps]: NativeReactType | ComposableFunction }; - filters?: { [K in keyof TSlotProps]?: (propName: string) => boolean }; + slots: { [K in keyof TSlotProps]: ComponentType }; + filters?: { [K in keyof TSlotProps]?: PropsFilter }; useStyling?: TSlotProps | GetSlotProps; }; @@ -31,6 +31,9 @@ export function buildUseSlots(options: UseSlotOptions): const builtSlots: Slots = {} as Slots; // for each slot go through and either cache the slot props or call part one render if it is staged + + // note: changing this to a for..in loop causes rule of hooks violations + // eslint-disable-next-line @rnx-kit/no-foreach-with-captured-variables Object.keys(slots).forEach((slotName) => { builtSlots[slotName] = useSlot(slots[slotName], slotProps[slotName], filters[slotName]); }); diff --git a/packages/framework/use-slots/src/useSlots.samples.test.tsx b/packages/framework/use-slots/src/useSlots.samples.test.tsx index 72be5e9ff0..804c04ee73 100644 --- a/packages/framework/use-slots/src/useSlots.samples.test.tsx +++ b/packages/framework/use-slots/src/useSlots.samples.test.tsx @@ -1,18 +1,12 @@ /** @jsxImportSource @fluentui-react-native/framework-base */ -import type { CSSProperties } from 'react'; - import { mergeProps } from '@fluentui-react-native/framework-base'; -import { stagedComponent } from '@fluentui-react-native/framework-base'; +import { phasedComponent } from '@fluentui-react-native/framework-base'; import * as renderer from 'react-test-renderer'; +import { View, Text } from 'react-native'; +import type { ViewProps, TextProps, ViewStyle, TextStyle } from 'react-native'; import { buildUseSlots } from './buildUseSlots'; -// types for web -type TextProps = { style?: CSSProperties }; -type ViewProps = { style?: CSSProperties }; -type ViewStyle = CSSProperties; -type TextStyle = CSSProperties; - /** * This file contains samples and description to help explain what the useSlots hook does and why it is useful * for building components. @@ -46,7 +40,7 @@ describe('useSlots sample code test suite', () => { * Now render the text, merging the baseProps with the style updates with the rest param. Note that this leverages the fact * that mergeProps will reliably produce style objects with the same reference, given the same inputs. */ - return {children}; + return {children}; }; BoldTextStandard.displayName = 'BoldTextStandard'; @@ -54,19 +48,21 @@ describe('useSlots sample code test suite', () => { * To write the same component using the staged pattern is only slightly more complex. The pattern involves splitting the component rendering into * two parts and executing any hooks in the first part. * - * The stagedComponent function takes an input function of this form and wraps it in a function component that react knows how to render + * The phasedComponent function takes an input function of this form and wraps it in a function component that react knows how to render */ - const BoldTextStaged = stagedComponent((props: React.PropsWithChildren) => { + const BoldTextStaged = phasedComponent((props: React.PropsWithChildren) => { /** * This section would be where hook/styling code would go, props here would include everything coming in from the base react tree with the * exception of children, which will be passed in stage 2. */ - return (extra: TextProps, children: React.ReactNode) => { + return (extra: React.PropsWithChildren) => { /** * extra are additional props that may be filled in by a higher order component. They should not include styling and are only props the * enclosing component are passing to the JSX elements */ - return {children}; + + const { children, ...rest } = extra; + return {children}; }; }); BoldTextStaged.displayName = 'BoldTextStaged'; @@ -79,10 +75,10 @@ describe('useSlots sample code test suite', () => { */ const wrapper = renderer .create( -
+ Staged component at one level Standard component of a single level -
, + , ) .toJSON(); expect(wrapper).toMatchSnapshot(); @@ -120,7 +116,7 @@ describe('useSlots sample code test suite', () => { /** * Now author the staged component using the slot hook */ - const HeaderStaged = stagedComponent((props: React.PropsWithChildren) => { + const HeaderStaged = phasedComponent((props: React.PropsWithChildren) => { /** * Call the slots hook (or any hook) outside of the inner closure. The useSlots hook will return an object with each slot as a renderable * function. The hooks for sub-components will be called as part of this call. Props passed in at this point will be the props that appear @@ -131,7 +127,8 @@ describe('useSlots sample code test suite', () => { const BoldText = useHeaderSlots(props).text; /** Now the inner closure, pretty much the same as before */ - return (extra: TextProps, children: React.ReactNode) => { + return (extra: TextProps) => { + const { children, ...rest } = extra; /** * Instead of rendering the component directly we render using the slot. If this is a staged component it will call the * inner closure directly, without going through createElement. Entries passed into the JSX, including children, are what appear in the @@ -140,7 +137,7 @@ describe('useSlots sample code test suite', () => { * NOTE: this requires using the withSlots helper via the jsx directive. This knows how to pick apart the entries and just call the second * part of the function */ - return {children}; + return {children}; }; }); HeaderStaged.displayName = 'HeaderStaged'; @@ -198,10 +195,10 @@ describe('useSlots sample code test suite', () => { const headerColorProps = getColorProps(headerColor); const captionColorProps = getColorProps(captionColor); return ( -
+ {children} {captionText && {captionText}} -
+ ); }; CaptionedHeaderStandard.displayName = `CaptionedHeaderStandard';`; @@ -212,7 +209,7 @@ describe('useSlots sample code test suite', () => { const useCaptionedHeaderSlots = buildUseSlots({ /** Slots are just like above, this component will have three sub-components */ slots: { - container: 'div', + container: View, header: HeaderStaged, caption: BoldTextStaged, }, @@ -230,12 +227,12 @@ describe('useSlots sample code test suite', () => { /** * now use the hook to implement it as a staged component */ - const CaptionedHeaderStaged = stagedComponent>((props) => { + const CaptionedHeaderStaged = phasedComponent>((props) => { // At the point where this is called the slots are initialized with the initial prop values from useStyling above const Slots = useCaptionedHeaderSlots(props); - return (extra: HeaderWithCaptionProps, children: React.ReactNode) => { + return (extra: HeaderWithCaptionProps) => { // merge the props together, picking out the caption text and clearing any custom values we don't want forwarded to the view - const { captionText, ...rest } = mergeProps(props, extra, clearCustomProps); + const { children, captionText, ...rest } = mergeProps(props, extra, clearCustomProps); // now render using the slots. Any values passed in via JSX will be merged with values from the slot hook above return ( diff --git a/packages/framework/use-styling/src/buildProps.ts b/packages/framework/use-styling/src/buildProps.ts index ff5a49c0da..7686421e2f 100644 --- a/packages/framework/use-styling/src/buildProps.ts +++ b/packages/framework/use-styling/src/buildProps.ts @@ -97,10 +97,10 @@ export function refinePropsFunctions( mask: TokensThatAreAlsoProps, ): BuildSlotProps { const result = {}; - Object.keys(styles).forEach((key) => { + for (const key of Object.keys(styles)) { const refine = typeof styles[key] === 'function' && (styles[key] as RefinableBuildPropsBase).refine; result[key] = refine ? refine(mask) : styles[key]; - }); + } return result; } From 692d9946a4d05ceab4a234b2b3aba4e44038fa56 Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Thu, 29 Jan 2026 11:58:16 -0800 Subject: [PATCH 06/29] Change files --- ...native-button-720b78fc-c110-4878-8d65-4b9e3f2598e9.json | 7 +++++++ ...e-composition-3f1b63a7-572b-41d3-aa58-4e9e63a67d7b.json | 7 +++++++ ...ntal-checkbox-272753d7-8b40-4478-b320-23b75fda2f54.json | 7 +++++++ ...ntal-expander-f3f75eb3-6a92-43b2-99d7-9d8eaae37046.json | 7 +++++++ ...l-menu-button-87ab93a8-c1d4-4b77-95ae-85825caa81f7.json | 7 +++++++ ...native-switch-e9541e88-729c-46a0-b35a-8e6caa138780.json | 7 +++++++ ...ive-use-slots-0995e553-335e-4dd8-b247-323d189a4a9d.json | 7 +++++++ ...e-use-styling-563d6e04-7aa2-45a0-b967-6f289375c2b2.json | 7 +++++++ 8 files changed, 56 insertions(+) create mode 100644 change/@fluentui-react-native-button-720b78fc-c110-4878-8d65-4b9e3f2598e9.json create mode 100644 change/@fluentui-react-native-composition-3f1b63a7-572b-41d3-aa58-4e9e63a67d7b.json create mode 100644 change/@fluentui-react-native-experimental-checkbox-272753d7-8b40-4478-b320-23b75fda2f54.json create mode 100644 change/@fluentui-react-native-experimental-expander-f3f75eb3-6a92-43b2-99d7-9d8eaae37046.json create mode 100644 change/@fluentui-react-native-experimental-menu-button-87ab93a8-c1d4-4b77-95ae-85825caa81f7.json create mode 100644 change/@fluentui-react-native-switch-e9541e88-729c-46a0-b35a-8e6caa138780.json create mode 100644 change/@fluentui-react-native-use-slots-0995e553-335e-4dd8-b247-323d189a4a9d.json create mode 100644 change/@fluentui-react-native-use-styling-563d6e04-7aa2-45a0-b967-6f289375c2b2.json diff --git a/change/@fluentui-react-native-button-720b78fc-c110-4878-8d65-4b9e3f2598e9.json b/change/@fluentui-react-native-button-720b78fc-c110-4878-8d65-4b9e3f2598e9.json new file mode 100644 index 0000000000..2dc890e24f --- /dev/null +++ b/change/@fluentui-react-native-button-720b78fc-c110-4878-8d65-4b9e3f2598e9.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "tighten up typing for framework, fixing the resulting errors", + "packageName": "@fluentui-react-native/button", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-composition-3f1b63a7-572b-41d3-aa58-4e9e63a67d7b.json b/change/@fluentui-react-native-composition-3f1b63a7-572b-41d3-aa58-4e9e63a67d7b.json new file mode 100644 index 0000000000..1a913ed191 --- /dev/null +++ b/change/@fluentui-react-native-composition-3f1b63a7-572b-41d3-aa58-4e9e63a67d7b.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "tighten up typing for framework, fixing the resulting errors", + "packageName": "@fluentui-react-native/composition", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-experimental-checkbox-272753d7-8b40-4478-b320-23b75fda2f54.json b/change/@fluentui-react-native-experimental-checkbox-272753d7-8b40-4478-b320-23b75fda2f54.json new file mode 100644 index 0000000000..3defd32781 --- /dev/null +++ b/change/@fluentui-react-native-experimental-checkbox-272753d7-8b40-4478-b320-23b75fda2f54.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "tighten up typing for framework, fixing the resulting errors", + "packageName": "@fluentui-react-native/experimental-checkbox", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-experimental-expander-f3f75eb3-6a92-43b2-99d7-9d8eaae37046.json b/change/@fluentui-react-native-experimental-expander-f3f75eb3-6a92-43b2-99d7-9d8eaae37046.json new file mode 100644 index 0000000000..cbc90bce73 --- /dev/null +++ b/change/@fluentui-react-native-experimental-expander-f3f75eb3-6a92-43b2-99d7-9d8eaae37046.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "tighten up typing for framework, fixing the resulting errors", + "packageName": "@fluentui-react-native/experimental-expander", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-experimental-menu-button-87ab93a8-c1d4-4b77-95ae-85825caa81f7.json b/change/@fluentui-react-native-experimental-menu-button-87ab93a8-c1d4-4b77-95ae-85825caa81f7.json new file mode 100644 index 0000000000..c9b2ab8e40 --- /dev/null +++ b/change/@fluentui-react-native-experimental-menu-button-87ab93a8-c1d4-4b77-95ae-85825caa81f7.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "tighten up typing for framework, fixing the resulting errors", + "packageName": "@fluentui-react-native/experimental-menu-button", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-switch-e9541e88-729c-46a0-b35a-8e6caa138780.json b/change/@fluentui-react-native-switch-e9541e88-729c-46a0-b35a-8e6caa138780.json new file mode 100644 index 0000000000..c63c36c93f --- /dev/null +++ b/change/@fluentui-react-native-switch-e9541e88-729c-46a0-b35a-8e6caa138780.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "tighten up typing for framework, fixing the resulting errors", + "packageName": "@fluentui-react-native/switch", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-use-slots-0995e553-335e-4dd8-b247-323d189a4a9d.json b/change/@fluentui-react-native-use-slots-0995e553-335e-4dd8-b247-323d189a4a9d.json new file mode 100644 index 0000000000..30dd40aa74 --- /dev/null +++ b/change/@fluentui-react-native-use-slots-0995e553-335e-4dd8-b247-323d189a4a9d.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "tighten up typing for framework, fixing the resulting errors", + "packageName": "@fluentui-react-native/use-slots", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-use-styling-563d6e04-7aa2-45a0-b967-6f289375c2b2.json b/change/@fluentui-react-native-use-styling-563d6e04-7aa2-45a0-b967-6f289375c2b2.json new file mode 100644 index 0000000000..6cf42e8089 --- /dev/null +++ b/change/@fluentui-react-native-use-styling-563d6e04-7aa2-45a0-b967-6f289375c2b2.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "tighten up typing for framework, fixing the resulting errors", + "packageName": "@fluentui-react-native/use-styling", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} From 2821ad866c1a1e5f2d341cfcba5f07f682caa368 Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Thu, 29 Jan 2026 12:36:20 -0800 Subject: [PATCH 07/29] fix break from merge --- packages/framework/use-slot/src/useSlot.test.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/framework/use-slot/src/useSlot.test.tsx b/packages/framework/use-slot/src/useSlot.test.tsx index dd01ea3278..8555e7b062 100644 --- a/packages/framework/use-slot/src/useSlot.test.tsx +++ b/packages/framework/use-slot/src/useSlot.test.tsx @@ -32,8 +32,11 @@ const PluggableText = phasedComponent((props: PluggableTextProps) => { PluggableText.displayName = 'PluggableText'; const useStyledStagedText = (props: PluggableTextProps, baseStyle: TextProps['style'], inner?: React.FunctionComponent) => { + // extract style from props + const { style, ...rest } = props; + // create merged props to pass in to the inner slot - const mergedProps = { ...rest, style: mergeStyles(baseStyle, style), ...(inner && { inner }) }; + const mergedProps = { ...rest, style: mergeStyles(baseStyle, style), ...(inner && { inner }) } as PluggableTextProps; // create a slot based on the pluggable text const InnerText = useSlot(PluggableText, mergedProps); From 1deda6316b72890afb89632f370973502502e887 Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Thu, 29 Jan 2026 12:48:09 -0800 Subject: [PATCH 08/29] add prop extraction helper and remove hack from switch --- packages/components/Switch/src/Switch.tsx | 4 ++-- packages/components/Switch/src/Switch.types.ts | 7 ++++--- .../framework-base/src/component-patterns/render.types.ts | 5 +++++ packages/framework-base/src/index.ts | 1 + 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/packages/components/Switch/src/Switch.tsx b/packages/components/Switch/src/Switch.tsx index 755cbf53b6..c71c0733d2 100644 --- a/packages/components/Switch/src/Switch.tsx +++ b/packages/components/Switch/src/Switch.tsx @@ -42,8 +42,8 @@ export const Switch = compose({ slots: { root: Pressable, label: Text, - track: Animated.View as unknown as typeof View, // Conversion from View to Animated.View for Animated API to work - thumb: Animated.View as unknown as typeof View, // Conversion from View to Animated.View for Animated API to work + track: Animated.View, + thumb: Animated.View, toggleContainer: View, onOffTextContainer: View, onOffText: Text, diff --git a/packages/components/Switch/src/Switch.types.ts b/packages/components/Switch/src/Switch.types.ts index 5044ce2079..4f05ec0dbb 100644 --- a/packages/components/Switch/src/Switch.types.ts +++ b/packages/components/Switch/src/Switch.types.ts @@ -1,10 +1,11 @@ import type * as React from 'react'; -import type { ViewStyle, ColorValue, PressableProps } from 'react-native'; +import type { Animated, ViewStyle, ColorValue, PressableProps } from 'react-native'; import type { IViewProps } from '@fluentui-react-native/adapters'; import type { IFocusable, InteractionEvent, PressablePropsExtended, PressableState } from '@fluentui-react-native/interactive-hooks'; import type { TextProps } from '@fluentui-react-native/text'; import type { FontTokens, IBorderTokens, IColorTokens, IShadowTokens, LayoutTokens } from '@fluentui-react-native/tokens'; +import type { PropsOf } from '@fluentui-react-native/framework-base'; export const switchName = 'Switch'; @@ -197,8 +198,8 @@ export interface SwitchInfo { export interface SwitchSlotProps { root: React.PropsWithRef; label: TextProps; - track: IViewProps; - thumb: IViewProps; + track: PropsOf; + thumb: PropsOf; toggleContainer: IViewProps; onOffTextContainer: IViewProps; onOffText: TextProps; diff --git a/packages/framework-base/src/component-patterns/render.types.ts b/packages/framework-base/src/component-patterns/render.types.ts index 914ae42932..9d1f84a9f2 100644 --- a/packages/framework-base/src/component-patterns/render.types.ts +++ b/packages/framework-base/src/component-patterns/render.types.ts @@ -13,6 +13,11 @@ export type RenderType = Parameters[0] | string; */ export type NativeReactType = RenderType; +/** + * Get the props from a react component type + */ +export type PropsOf = TComponent extends React.JSXElementConstructor ? P : never; + /** * DIRECT RENDERING * diff --git a/packages/framework-base/src/index.ts b/packages/framework-base/src/index.ts index ac66d45af6..c1c34c3b41 100644 --- a/packages/framework-base/src/index.ts +++ b/packages/framework-base/src/index.ts @@ -27,6 +27,7 @@ export type { LegacyDirectComponent, PhasedComponent, PhasedRender, + PropsOf, RenderType, RenderResult, StagedRender, From d061b13ab49af30a68831c88558b4a768e20a67b Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Thu, 29 Jan 2026 13:28:47 -0800 Subject: [PATCH 09/29] fix package linting error --- packages/experimental/Checkbox/package.json | 1 - yarn.lock | 1 - 2 files changed, 2 deletions(-) diff --git a/packages/experimental/Checkbox/package.json b/packages/experimental/Checkbox/package.json index 40e39947c2..260dc532e1 100644 --- a/packages/experimental/Checkbox/package.json +++ b/packages/experimental/Checkbox/package.json @@ -32,7 +32,6 @@ "update-snapshots": "fluentui-scripts jest -u" }, "dependencies": { - "@fluentui-react-native/adapters": "workspace:*", "@fluentui-react-native/checkbox": "workspace:*", "@fluentui-react-native/framework": "workspace:*" }, diff --git a/yarn.lock b/yarn.lock index 6b7367488c..3c9443a04f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4043,7 +4043,6 @@ __metadata: resolution: "@fluentui-react-native/experimental-checkbox@workspace:packages/experimental/Checkbox" dependencies: "@babel/core": "catalog:" - "@fluentui-react-native/adapters": "workspace:*" "@fluentui-react-native/babel-config": "workspace:*" "@fluentui-react-native/checkbox": "workspace:*" "@fluentui-react-native/eslint-config-rules": "workspace:*" From 6da801f360fa544b96fdc49637e9ec16f84a5003 Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Thu, 29 Jan 2026 15:11:24 -0800 Subject: [PATCH 10/29] fix useSlot implementation --- packages/framework/use-slot/src/useSlot.ts | 60 ++++++++++++++-------- 1 file changed, 40 insertions(+), 20 deletions(-) diff --git a/packages/framework/use-slot/src/useSlot.ts b/packages/framework/use-slot/src/useSlot.ts index c3c7e566ab..6052882938 100644 --- a/packages/framework/use-slot/src/useSlot.ts +++ b/packages/framework/use-slot/src/useSlot.ts @@ -5,38 +5,58 @@ import type { PropsFilter, FunctionComponent } from '@fluentui-react-native/fram export type ComponentType = React.ComponentType; +type SlotData = { + innerComponent: React.ComponentType; + propsToMerge?: TProps; +}; + /** * useSlot hook function, allows authoring against pluggable slots as well as allowing components to be called as functions rather than * via createElement if they support it. * * @param component - any kind of component that can be rendered as part of the tree - * @param initialProps - props, particularly the portion that includes styles, that should be passed to the component. These will be merged with what are specified in the JSX tree + * @param hookProps - props, particularly the portion that includes styles, that should be passed to the component. These will be merged with what are specified in the JSX tree * @param filter - optional filter that will prune the props before forwarding to the component * @returns */ export function useSlot( component: React.ComponentType, - initialProps: Partial, + hookProps?: Partial, filter?: PropsFilter, ): FunctionComponent { - // filter the initial props if a filter is specified - const filteredProps = filterProps(initialProps, filter); - - // build the secondary processing function and the result holder, done via useMemo so the function identity stays the same. Rebuilding the closure every time would invalidate render - return React.useMemo>(() => { - // extract the phased component function if that pattern is being used, will be undefined if it is a standard component - const phasedRender = getPhasedRender(component as React.ComponentType); + // create this once for this hook instance to hold slot data between phases + const slotData = React.useMemo(() => { + return {} as SlotData; + }, []); - // do the first phase render with the initial props if we are using the staged pattern. This is typically getting - // styles and tokens in place a single time for the component. - const finalRender = phasedRender ? phasedRender(initialProps as TProps) : component; + // see if this component is a phased render component + const phasedRender = getPhasedRender(component); + if (phasedRender) { + // if it is, run the first phase now with the hook props + slotData.innerComponent = phasedRender(hookProps as TProps); + slotData.propsToMerge = undefined; + } else { + // otherwise pass the hook props directly to the component + slotData.innerComponent = component; + slotData.propsToMerge = hookProps as TProps; + } - // now return a direct component function that can be used in JSX/TSX, this pattern is safe since we won't be using - // hooks in this closure - return directComponent((innerProps: TProps) => { - const finalInner = filterProps(innerProps, filter); - const finalProps = phasedRender ? finalInner : mergeProps(filteredProps, finalInner); - return renderForJsxRuntime(finalRender as React.ComponentType, finalProps); - }); - }, [component, filter]); + // build the secondary processing function and the result holder, done via useMemo so the function identity stays the same. Rebuilding the closure every time would invalidate render + return React.useMemo>( + () => + directComponent((innerProps: TProps) => { + const { propsToMerge, innerComponent } = slotData; + if (propsToMerge) { + // merge in props from phase one if they haven't been captured in the phased render + innerProps = mergeProps(propsToMerge, innerProps); + } + if (filter) { + // filter the final props if a filter is specified + innerProps = filterProps(innerProps, filter); + } + // now render the component with the final props + return renderForJsxRuntime(innerComponent, innerProps); + }), + [component, filter, slotData], + ); } From ce3ff71f6f9c9f623bf5f3cc0c07cde14929542b Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Thu, 29 Jan 2026 15:37:19 -0800 Subject: [PATCH 11/29] add win32 test app for 0.81 --- apps/win32-81/.gitattributes | 1 + apps/win32-81/.gitignore | 69 +++++++++ apps/win32-81/.npmignore | 4 + apps/win32-81/.watchmanconfig | 1 + apps/win32-81/README.md | 73 ++++++++++ apps/win32-81/app.json | 4 + apps/win32-81/babel.config.js | 1 + apps/win32-81/eslint.config.js | 3 + apps/win32-81/index.js | 1 + apps/win32-81/metro.config.js | 43 ++++++ ...icrosoft.FluentUI.FluentTesterWin32.nuspec | 19 +++ apps/win32-81/package.json | 131 ++++++++++++++++++ apps/win32-81/react-native.config.js | 4 + apps/win32-81/src/index.tsx | 9 ++ apps/win32-81/tsconfig.json | 4 + 15 files changed, 367 insertions(+) create mode 100644 apps/win32-81/.gitattributes create mode 100644 apps/win32-81/.gitignore create mode 100644 apps/win32-81/.npmignore create mode 100644 apps/win32-81/.watchmanconfig create mode 100644 apps/win32-81/README.md create mode 100644 apps/win32-81/app.json create mode 100644 apps/win32-81/babel.config.js create mode 100644 apps/win32-81/eslint.config.js create mode 100644 apps/win32-81/index.js create mode 100644 apps/win32-81/metro.config.js create mode 100644 apps/win32-81/nuget/Microsoft.FluentUI.FluentTesterWin32.nuspec create mode 100644 apps/win32-81/package.json create mode 100644 apps/win32-81/react-native.config.js create mode 100644 apps/win32-81/src/index.tsx create mode 100644 apps/win32-81/tsconfig.json diff --git a/apps/win32-81/.gitattributes b/apps/win32-81/.gitattributes new file mode 100644 index 0000000000..d42ff18354 --- /dev/null +++ b/apps/win32-81/.gitattributes @@ -0,0 +1 @@ +*.pbxproj -text diff --git a/apps/win32-81/.gitignore b/apps/win32-81/.gitignore new file mode 100644 index 0000000000..6f540cf5d7 --- /dev/null +++ b/apps/win32-81/.gitignore @@ -0,0 +1,69 @@ +# OSX +# +.DS_Store + +# Xcode +# +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata +*.xccheckout +*.moved-aside +DerivedData +*.hmap +*.ipa +*.xcuserstate +project.xcworkspace + +# Android/IntelliJ +# +build/ +.idea +.gradle +local.properties +*.iml + +# node.js / web +# +node_modules/ +node_modules/**/* +npm-debug.log +yarn-error.log +npm-debug.* +*.jks +*.p8 +*.p12 +*.key +*.mobileprovision +*.orig.* +web-build/ +web-report/ + +# BUCK +buck-out/ +\.buckd/ +*.keystore + +# fastlane +# +# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the +# screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://docs.fastlane.tools/best-practices/source-control/ + +*/fastlane/report.xml +*/fastlane/Preview.html +*/fastlane/screenshots + +# Bundle artifact +*.bundle + +# CocoaPods +/ios/Pods/ diff --git a/apps/win32-81/.npmignore b/apps/win32-81/.npmignore new file mode 100644 index 0000000000..a197c6a7ce --- /dev/null +++ b/apps/win32-81/.npmignore @@ -0,0 +1,4 @@ +yarn-error.log + +# Build targets +!dist diff --git a/apps/win32-81/.watchmanconfig b/apps/win32-81/.watchmanconfig new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/apps/win32-81/.watchmanconfig @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/apps/win32-81/README.md b/apps/win32-81/README.md new file mode 100644 index 0000000000..ca6940cb29 --- /dev/null +++ b/apps/win32-81/README.md @@ -0,0 +1,73 @@ +# Running the FluentUI Tester on Win32 + +`FluentUI Tester` is the test app that we use to test our FluentUI components during development. + +## Launch `FluentUI Tester` app on Win32 + +1. Make sure you've installed the Standard React Native dependencies and Node.js from the [Prerequisites](https://github.com/microsoft/fluentui-react-native/tree/main?tab=readme-ov-file#prerequisites) section. + +2. Next, [clone and build the repo](https://github.com/microsoft/fluentui-react-native/tree/main?tab=readme-ov-file#setup-your-development-environment). If you already have a clone of the repo, make sure you've pulled the latest from the main branch (run `git pull` from your clone's main branch). You can verify you have the latest commits by running `git log` which lists all the commits from your branch with dates. Ensure commits are from a recent date or match the latest commits [here](https://github.com/microsoft/fluentui-react-native/commits/main). To exit the `git log` view, press the letter 'q' (for "quit"). + +3. Then go into `apps\win32` folder: + +``` +cd apps\win32 +``` + +3. Build the FluentUI Tester bundle: + +``` +yarn bundle +``` + +4. Launch the FluentUI Tester app: + +``` +yarn run-win32 +``` + +5. You will see the FluentUI Tester show up in a new window. + +![Image of Fluent Tester](./../../assets/fluent_tester_win32.png) + +## Debug `FluentUI Tester` app with direct debugging + +Note: we recommend using Visual Studio Code for direct debugging. + +1. Follow steps #1-3 above. +2. Build the FluentUI Tester bundle with dev option. This will ensure source map is included in the bundle. + +``` +yarn bundle-dev +``` + +3. Launch the FluentUI Tester app: + +``` +yarn run-win32 +``` + +4. Inside ReactTest, open the debug option menu and select the checkbox `Use Direct Debugger` + +![Image of Fluent Tester debug menu location](./../../assets/fluent_tester_win32_debug_menu.png) + +5. In Visual Studio Code, open the debug pane and select `Debug Fabric Tester` option from the "Run And Debug" dropdown. + +![Image of Visual Studio Code debug pane](./../../assets/fluent_tester_vscode_debug.png) + +6. At this time, VS Code will attach to the JS runtime and you can start debugging + +## Dependencies + +Dependencies are managed by +[`@rnx-kit/align-deps`](https://github.com/microsoft/rnx-kit/tree/main/packages/align-deps). +If you're looking to upgrade `react-native`, use the interactive upgrade command: + +```sh +yarn rnx-align-deps --set-version +``` + +This command will ensure that all relevant packages are bumped correctly. + +You can read more about this tool here: +[`@rnx-kit/align-deps` design document](https://github.com/microsoft/rnx-kit/blob/main/docsite/docs/architecture/dependency-management.md) diff --git a/apps/win32-81/app.json b/apps/win32-81/app.json new file mode 100644 index 0000000000..be664ec1f2 --- /dev/null +++ b/apps/win32-81/app.json @@ -0,0 +1,4 @@ +{ + "name": "FluentTester", + "displayName": "FluentTester" +} \ No newline at end of file diff --git a/apps/win32-81/babel.config.js b/apps/win32-81/babel.config.js new file mode 100644 index 0000000000..aa7d482ebf --- /dev/null +++ b/apps/win32-81/babel.config.js @@ -0,0 +1 @@ +module.exports = require('@fluentui-react-native/babel-config'); diff --git a/apps/win32-81/eslint.config.js b/apps/win32-81/eslint.config.js new file mode 100644 index 0000000000..c98098e068 --- /dev/null +++ b/apps/win32-81/eslint.config.js @@ -0,0 +1,3 @@ +const baseConfig = require('@fluentui-react-native/eslint-config-rules'); + +module.exports = baseConfig; diff --git a/apps/win32-81/index.js b/apps/win32-81/index.js new file mode 100644 index 0000000000..93acbc1a8a --- /dev/null +++ b/apps/win32-81/index.js @@ -0,0 +1 @@ +require('./src/index'); diff --git a/apps/win32-81/metro.config.js b/apps/win32-81/metro.config.js new file mode 100644 index 0000000000..79dd8892bd --- /dev/null +++ b/apps/win32-81/metro.config.js @@ -0,0 +1,43 @@ +/** + * Metro configuration for React Native + * https://github.com/facebook/react-native + * + * @format + */ +// @ts-check +const { exclusionList, makeMetroConfig, resolveUniqueModule } = require('@rnx-kit/metro-config'); +const MetroSymlinksResolver = require('@rnx-kit/metro-resolver-symlinks'); +const { getDefaultConfig } = require('metro-config'); + +const excludeMixins = []; +const extraNodeModules = {}; +function ensureUniqueModule(moduleName, excludeList, nodeModules) { + const [nmEntry, excludePattern] = resolveUniqueModule(moduleName); + excludeMixins.push(excludePattern); + extraNodeModules[moduleName] = nmEntry; +} + +// build up the added excludes and extraNodeModules +['react-native-svg'].forEach((moduleName) => ensureUniqueModule(moduleName)); + +module.exports = async () => { + const { + resolver: { sourceExts, assetExts }, + } = await getDefaultConfig(__dirname); + + return makeMetroConfig({ + resolver: { + assetExts: [...assetExts.filter((ext) => ext !== 'svg'), 'ttf', 'otf', 'png'], + blockList: exclusionList(excludeMixins), + extraNodeModules: { + ...extraNodeModules, + }, + sourceExts: [...sourceExts, 'svg'], + resolveRequest: MetroSymlinksResolver(), + }, + transformer: { + // This transformer selects between the regular transformer and svg transformer depending on the file type + babelTransformerPath: require.resolve('react-native-svg-transformer'), + }, + }); +}; diff --git a/apps/win32-81/nuget/Microsoft.FluentUI.FluentTesterWin32.nuspec b/apps/win32-81/nuget/Microsoft.FluentUI.FluentTesterWin32.nuspec new file mode 100644 index 0000000000..06a3329c46 --- /dev/null +++ b/apps/win32-81/nuget/Microsoft.FluentUI.FluentTesterWin32.nuspec @@ -0,0 +1,19 @@ + + + + Microsoft.FluentUI.FluentTesterWin32.81 + 1.0.0 + FluentUI-React-Native Win32 RN 0.81 Bundle + Microsoft Office CXE + https://github.com/microsoft/fluentui-react-native.git + This package contains the React Native JS bundle of FluentUI-React-Native's Win32 Test App. + false + + + + + + + \ No newline at end of file diff --git a/apps/win32-81/package.json b/apps/win32-81/package.json new file mode 100644 index 0000000000..0c01d63ff2 --- /dev/null +++ b/apps/win32-81/package.json @@ -0,0 +1,131 @@ +{ + "name": "@fluentui-react-native/tester-win32-81", + "version": "0.38.69", + "description": "Fluent UI React Native Win32 Tester App for RN 0.81", + "repository": { + "type": "git", + "url": "https://github.com/microsoft/fluentui-react-native.git", + "directory": "apps/win32" + }, + "exports": { + ".": { + "types": "./lib/index.d.ts", + "import": "./lib/index.js", + "require": "./lib-commonjs/index.js" + } + }, + "main": "lib-commonjs/index.js", + "module": "lib/index.js", + "types": "lib/index.d.ts", + "scripts": { + "build": "fluentui-scripts build", + "build-cjs": "tsgo --outDir lib-commonjs", + "build-esm": "tsgo --outDir lib --module esnext --moduleResolution bundler", + "bundle": "rnx-cli bundle --dev false", + "bundle-dev": "rnx-cli bundle", + "clean": "fluentui-scripts clean", + "depcheck": "fluentui-scripts depcheck", + "lint": "fluentui-scripts eslint", + "lint-package": "fluentui-scripts lint-package", + "prettier": "fluentui-scripts prettier", + "run-win32": "rex-win32 --bundle index.win32 --component FluentTester --basePath ./dist --useDirectDebugger --windowTitle \"FluentUI Tester\" --pluginProps --debugBundlePath index --jsEngine v8", + "run-win32-dev": "rex-win32 --bundle index --component FluentTester --basePath ./dist --useDirectDebugger --windowTitle \"FluentUI Tester\" --pluginProps --debugBundlePath index --jsEngine v8 --useFastRefresh", + "run-win32-devmain": "rex-win32 --bundle index.win32 --component FluentTester --basePath ./dist --useDirectDebugger --windowTitle \"FluentUI Tester\" --pluginProps --debugBundlePath index --jsEngine v8 --useDevMain ", + "run-win32-devmain-dev": "rex-win32 --bundle index --component FluentTester --basePath ./dist --useDirectDebugger --windowTitle \"FluentUI Tester\" --pluginProps --debugBundlePath index --jsEngine v8 --useFastRefresh --useDevMain", + "start": "rnx-cli start" + }, + "jest": { + "preset": "react-native" + }, + "dependencies": { + "@fluentui-react-native/tester-core": "workspace:*", + "@office-iss/react-native-win32": "^0.81.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-svg": "^15.12.1" + }, + "devDependencies": { + "@babel/core": "catalog:", + "@babel/runtime": "catalog:", + "@fluentui-react-native/babel-config": "workspace:*", + "@fluentui-react-native/eslint-config-rules": "workspace:*", + "@fluentui-react-native/kit-config": "workspace:*", + "@fluentui-react-native/scripts": "workspace:*", + "@office-iss/rex-win32": "0.81.0-preview.0", + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-babel-transformer": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@rnx-kit/babel-preset-metro-react-native": "catalog:", + "@rnx-kit/cli": "catalog:", + "@rnx-kit/metro-config": "catalog:", + "@rnx-kit/metro-resolver-symlinks": "catalog:", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "metro-config": "^0.83.1", + "react-native-svg-transformer": "^1.0.0", + "react-native-test-app": "^4.4.11", + "react-test-renderer": "19.1.0", + "rimraf": "catalog:" + }, + "furn": { + "depcheck": { + "ignoreMatches": [ + "@office-iss/react-native-win32" + ] + } + }, + "rnx-kit": { + "kitType": "app", + "bundle": [ + { + "entryFile": "index.js", + "bundleOutput": "dist/index.win32.bundle", + "sourcemapOutput": "dist/index.win32.bundle.map", + "assetsDest": "dist", + "targets": [ + "win32" + ], + "plugins": [ + [ + "@rnx-kit/metro-plugin-cyclic-dependencies-detector", + { + "throwOnError": true + } + ], + [ + "@rnx-kit/metro-plugin-duplicates-checker", + { + "throwOnError": false, + "ignoredModules": [ + "react-is" + ] + } + ] + ] + } + ], + "alignDeps": { + "requirements": { + "production": [ + "react-native@0.81" + ] + }, + "capabilities": [ + "babel-preset-react-native", + "community/cli", + "core-win32", + "core/metro-config", + "metro-react-native-babel-transformer", + "react", + "react-test-renderer", + "svg", + "test-app", + "tools-core" + ] + }, + "extends": "@fluentui-react-native/kit-config" + } +} diff --git a/apps/win32-81/react-native.config.js b/apps/win32-81/react-native.config.js new file mode 100644 index 0000000000..60db85ae56 --- /dev/null +++ b/apps/win32-81/react-native.config.js @@ -0,0 +1,4 @@ +module.exports = { + reactNativePath: './node_modules/@office-iss/react-native-win32', + assets: ['./assets/'], +}; diff --git a/apps/win32-81/src/index.tsx b/apps/win32-81/src/index.tsx new file mode 100644 index 0000000000..b6bc03fdc6 --- /dev/null +++ b/apps/win32-81/src/index.tsx @@ -0,0 +1,9 @@ +'use strict'; + +import { AppRegistry } from 'react-native'; + +import { FluentTesterApp } from '@fluentui-react-native/tester-core'; + +AppRegistry.registerComponent('FluentTester', () => FluentTesterApp); + +export default FluentTesterApp; diff --git a/apps/win32-81/tsconfig.json b/apps/win32-81/tsconfig.json new file mode 100644 index 0000000000..2c7e2516f6 --- /dev/null +++ b/apps/win32-81/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "@fluentui-react-native/scripts/configs/tsconfig.json", + "include": ["src"] +} From ff7e681ff7acae5fe0f0284044f469a506dc9b48 Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Thu, 29 Jan 2026 15:37:55 -0800 Subject: [PATCH 12/29] add peer declarations for 0.78 and 0.81 --- .yarnrc.yml | 12 + apps/E2E/package.json | 10 +- apps/tester-core/package.json | 12 +- packages/components/Avatar/package.json | 10 +- packages/components/Badge/package.json | 10 +- packages/components/Button/package.json | 10 +- packages/components/Callout/package.json | 8 +- packages/components/Checkbox/package.json | 10 +- packages/components/Chip/package.json | 10 +- .../components/ContextualMenu/package.json | 10 +- packages/components/Divider/package.json | 10 +- .../components/FocusTrapZone/package.json | 8 +- packages/components/FocusZone/package.json | 8 +- packages/components/Icon/package.json | 10 +- packages/components/Input/package.json | 10 +- packages/components/Link/package.json | 8 +- packages/components/Menu/package.json | 10 +- packages/components/MenuButton/package.json | 10 +- packages/components/Notification/package.json | 10 +- packages/components/Persona/package.json | 8 +- packages/components/PersonaCoin/package.json | 8 +- packages/components/Pressable/package.json | 8 +- packages/components/RadioGroup/package.json | 10 +- packages/components/Separator/package.json | 8 +- packages/components/Stack/package.json | 8 +- packages/components/Switch/package.json | 8 +- packages/components/TabList/package.json | 10 +- packages/components/Text/package.json | 8 +- .../configs/kit-config/rnx-kit.config.cjs | 2 +- .../foundation-composable/package.json | 4 +- .../foundation-compose/package.json | 10 +- .../foundation-settings/package.json | 2 +- .../deprecated/foundation-tokens/package.json | 10 +- .../deprecated/theme-registry/package.json | 2 +- .../deprecated/themed-settings/package.json | 2 +- packages/deprecated/theming-ramp/package.json | 2 +- .../theming-react-native/package.json | 8 +- .../ActivityIndicator/package.json | 10 +- .../AppearanceAdditions/package.json | 8 +- packages/experimental/Avatar/package.json | 8 +- packages/experimental/Checkbox/package.json | 10 +- packages/experimental/Drawer/package.json | 8 +- packages/experimental/Dropdown/package.json | 10 +- packages/experimental/Expander/package.json | 8 +- packages/experimental/MenuButton/package.json | 10 +- .../NativeDatePicker/package.json | 4 +- .../NativeFontMetrics/package.json | 4 +- packages/experimental/Overflow/package.json | 10 +- packages/experimental/Popover/package.json | 8 +- packages/experimental/Shadow/package.json | 8 +- packages/experimental/Shimmer/package.json | 10 +- packages/experimental/Spinner/package.json | 10 +- packages/experimental/Stack/package.json | 8 +- packages/experimental/Tooltip/package.json | 10 +- .../experimental/VibrancyView/package.json | 10 +- packages/framework-base/package.json | 2 +- packages/framework/composition/package.json | 2 +- packages/framework/framework/package.json | 8 +- .../framework/immutable-merge/package.json | 2 +- packages/framework/memo-cache/package.json | 2 +- packages/framework/merge-props/package.json | 2 +- packages/framework/theme/package.json | 4 +- .../framework/themed-stylesheet/package.json | 4 +- packages/framework/use-slot/package.json | 2 +- packages/framework/use-slots/package.json | 2 +- packages/framework/use-styling/package.json | 2 +- packages/framework/use-tokens/package.json | 2 +- packages/libraries/core/package.json | 10 +- packages/theming/android-theme/package.json | 8 +- packages/theming/apple-theme/package.json | 8 +- packages/theming/default-theme/package.json | 8 +- packages/theming/theme-tokens/package.json | 4 +- packages/theming/theme-types/package.json | 4 +- packages/theming/theming-utils/package.json | 8 +- packages/theming/win32-theme/package.json | 8 +- packages/utils/adapters/package.json | 10 +- packages/utils/interactive-hooks/package.json | 8 +- packages/utils/styling/package.json | 4 +- packages/utils/tokens/package.json | 8 +- yarn.lock | 2727 ++++++++++++++--- 80 files changed, 2618 insertions(+), 689 deletions(-) diff --git a/.yarnrc.yml b/.yarnrc.yml index f4ecfbba93..d77710c139 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -10,10 +10,13 @@ catalog: '@babel/plugin-transform-react-jsx': '^7.22.0' '@rnx-kit/align-deps': ^3.4.0 '@rnx-kit/babel-preset-metro-react-native': ^3.0.1 + '@rnx-kit/cli': '^1.0.0' '@rnx-kit/config': ^0.7.4 '@rnx-kit/eslint-plugin': ^0.9.5 '@rnx-kit/jest-preset': ^0.3.1 '@rnx-kit/lint-lockfile': ^0.1.2 + '@rnx-kit/metro-config': '^2.2.3' + '@rnx-kit/metro-resolver-symlinks': '^0.2.11' '@rnx-kit/reporter': ^0.1.0 '@rnx-kit/tools-packages': ^0.1.1 '@rnx-kit/tools-typescript': ^0.1.1 @@ -231,9 +234,17 @@ catalogs: react-test-renderer: 19.1.0 dynamicPackageExtensions: ./scripts/dynamic.extensions.mjs + enableScripts: false + globalFolder: .yarn/store + +logFilters: + - code: YN0060 + level: discard + nodeLinker: pnpm + packageExtensions: appium@*: dependencies: @@ -291,4 +302,5 @@ plugins: path: .yarn/plugins/@rnx-kit/yarn-plugin-dynamic-extensions.cjs spec: >- https://raw.githubusercontent.com/microsoft/rnx-kit/main/incubator/yarn-plugin-dynamic-extensions/index.js + yarnPath: .yarn/releases/yarn-4.11.0.cjs diff --git a/apps/E2E/package.json b/apps/E2E/package.json index afbe298e2c..8ab6110ab6 100644 --- a/apps/E2E/package.json +++ b/apps/E2E/package.json @@ -84,11 +84,11 @@ "hoistingLimits": "dependencies" }, "peerDependencies": { - "@office-iss/react-native-win32": "^0.73.0 || ^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "@office-iss/react-native-win32": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/apps/tester-core/package.json b/apps/tester-core/package.json index fe19e42d04..e1e624f7f8 100644 --- a/apps/tester-core/package.json +++ b/apps/tester-core/package.json @@ -145,12 +145,12 @@ "@fluentui-react-native/tester-core": "workspace:*", "@fluentui-react-native/tooltip": "workspace:*", "@fluentui-react-native/vibrancy-view": "workspace:*", - "@office-iss/react-native-win32": "^0.73.0 || ^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "@office-iss/react-native-win32": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@fluentui-react-native/callout": { diff --git a/packages/components/Avatar/package.json b/packages/components/Avatar/package.json index 921fac4894..f4b031d836 100644 --- a/packages/components/Avatar/package.json +++ b/packages/components/Avatar/package.json @@ -65,11 +65,11 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/Badge/package.json b/packages/components/Badge/package.json index 7c4d64bacd..2d91daf237 100644 --- a/packages/components/Badge/package.json +++ b/packages/components/Badge/package.json @@ -63,11 +63,11 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/Button/package.json b/packages/components/Button/package.json index d0edc4f2e9..d204a04928 100644 --- a/packages/components/Button/package.json +++ b/packages/components/Button/package.json @@ -74,11 +74,11 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/Callout/package.json b/packages/components/Callout/package.json index 4f6eacb91c..6266afad23 100644 --- a/packages/components/Callout/package.json +++ b/packages/components/Callout/package.json @@ -59,10 +59,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/Checkbox/package.json b/packages/components/Checkbox/package.json index e988a1add9..1be108cf44 100644 --- a/packages/components/Checkbox/package.json +++ b/packages/components/Checkbox/package.json @@ -70,11 +70,11 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/Chip/package.json b/packages/components/Chip/package.json index d7bbd48558..e60a3d0bf2 100644 --- a/packages/components/Chip/package.json +++ b/packages/components/Chip/package.json @@ -60,11 +60,11 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/ContextualMenu/package.json b/packages/components/ContextualMenu/package.json index 06c17939b0..6b8e0de01e 100644 --- a/packages/components/ContextualMenu/package.json +++ b/packages/components/ContextualMenu/package.json @@ -70,11 +70,11 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/Divider/package.json b/packages/components/Divider/package.json index c284b57495..cec546a49c 100644 --- a/packages/components/Divider/package.json +++ b/packages/components/Divider/package.json @@ -61,11 +61,11 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/FocusTrapZone/package.json b/packages/components/FocusTrapZone/package.json index 960bab367e..4cd0bc6c80 100644 --- a/packages/components/FocusTrapZone/package.json +++ b/packages/components/FocusTrapZone/package.json @@ -57,10 +57,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/FocusZone/package.json b/packages/components/FocusZone/package.json index fc417e2716..81d552351d 100644 --- a/packages/components/FocusZone/package.json +++ b/packages/components/FocusZone/package.json @@ -58,10 +58,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/Icon/package.json b/packages/components/Icon/package.json index 1dcda7bc11..99888e58f7 100644 --- a/packages/components/Icon/package.json +++ b/packages/components/Icon/package.json @@ -58,11 +58,11 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/Input/package.json b/packages/components/Input/package.json index ed69ede358..dad259f165 100644 --- a/packages/components/Input/package.json +++ b/packages/components/Input/package.json @@ -63,11 +63,11 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/Link/package.json b/packages/components/Link/package.json index e92d187092..76f589bd68 100644 --- a/packages/components/Link/package.json +++ b/packages/components/Link/package.json @@ -63,10 +63,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/Menu/package.json b/packages/components/Menu/package.json index a484fcf291..5ac786315d 100644 --- a/packages/components/Menu/package.json +++ b/packages/components/Menu/package.json @@ -70,11 +70,11 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/MenuButton/package.json b/packages/components/MenuButton/package.json index f964b52a6c..640a5bc51b 100644 --- a/packages/components/MenuButton/package.json +++ b/packages/components/MenuButton/package.json @@ -63,11 +63,11 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/Notification/package.json b/packages/components/Notification/package.json index a3ca4c9f69..2e59c0b51b 100644 --- a/packages/components/Notification/package.json +++ b/packages/components/Notification/package.json @@ -69,11 +69,11 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/Persona/package.json b/packages/components/Persona/package.json index b23d680f78..f823c2a53b 100644 --- a/packages/components/Persona/package.json +++ b/packages/components/Persona/package.json @@ -57,10 +57,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/PersonaCoin/package.json b/packages/components/PersonaCoin/package.json index dbb11b5e88..040a244657 100644 --- a/packages/components/PersonaCoin/package.json +++ b/packages/components/PersonaCoin/package.json @@ -58,10 +58,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/Pressable/package.json b/packages/components/Pressable/package.json index b015653799..1bffc8284b 100644 --- a/packages/components/Pressable/package.json +++ b/packages/components/Pressable/package.json @@ -52,10 +52,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/RadioGroup/package.json b/packages/components/RadioGroup/package.json index 17d1f6682a..4c76616d70 100644 --- a/packages/components/RadioGroup/package.json +++ b/packages/components/RadioGroup/package.json @@ -69,11 +69,11 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/Separator/package.json b/packages/components/Separator/package.json index 1701052677..da7fe646cf 100644 --- a/packages/components/Separator/package.json +++ b/packages/components/Separator/package.json @@ -57,10 +57,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/Stack/package.json b/packages/components/Stack/package.json index 950b741bf5..b9802a3c61 100644 --- a/packages/components/Stack/package.json +++ b/packages/components/Stack/package.json @@ -61,10 +61,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/Switch/package.json b/packages/components/Switch/package.json index e9ca6fccb5..19c5da0efa 100644 --- a/packages/components/Switch/package.json +++ b/packages/components/Switch/package.json @@ -62,10 +62,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/TabList/package.json b/packages/components/TabList/package.json index 3eaaefccdc..65102316c2 100644 --- a/packages/components/TabList/package.json +++ b/packages/components/TabList/package.json @@ -65,11 +65,11 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/components/Text/package.json b/packages/components/Text/package.json index dce8c5d8d7..387f33bdc4 100644 --- a/packages/components/Text/package.json +++ b/packages/components/Text/package.json @@ -60,10 +60,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/configs/kit-config/rnx-kit.config.cjs b/packages/configs/kit-config/rnx-kit.config.cjs index 0b421f525c..d75258333c 100644 --- a/packages/configs/kit-config/rnx-kit.config.cjs +++ b/packages/configs/kit-config/rnx-kit.config.cjs @@ -5,7 +5,7 @@ const config = { presets: ['@fluentui-react-native/kit-config/furn-preset.ts'], requirements: { development: ['react-native@0.74'], - production: ['react-native@0.73 || 0.74'], + production: ['react-native@0.73 || 0.74 || 0.78 || 0.81'], }, }, }; diff --git a/packages/deprecated/foundation-composable/package.json b/packages/deprecated/foundation-composable/package.json index 50c5c3afc7..66b9a4f11f 100644 --- a/packages/deprecated/foundation-composable/package.json +++ b/packages/deprecated/foundation-composable/package.json @@ -47,8 +47,8 @@ "react-native": "^0.74.0" }, "peerDependencies": { - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "rnx-kit": { "kitType": "library", diff --git a/packages/deprecated/foundation-compose/package.json b/packages/deprecated/foundation-compose/package.json index 857b58a04f..3826a6b017 100644 --- a/packages/deprecated/foundation-compose/package.json +++ b/packages/deprecated/foundation-compose/package.json @@ -56,11 +56,11 @@ "react-native-windows": "^0.74.0" }, "peerDependencies": { - "@office-iss/react-native-win32": "^0.73.0 || ^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "@office-iss/react-native-win32": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/deprecated/foundation-settings/package.json b/packages/deprecated/foundation-settings/package.json index ca5d2b845c..d6f83931ed 100644 --- a/packages/deprecated/foundation-settings/package.json +++ b/packages/deprecated/foundation-settings/package.json @@ -49,7 +49,7 @@ "react-native": "^0.74.0" }, "peerDependencies": { - "react": "18.2.0" + "react": "18.2.0 || 19.0.0 || 19.1.0" }, "rnx-kit": { "kitType": "library", diff --git a/packages/deprecated/foundation-tokens/package.json b/packages/deprecated/foundation-tokens/package.json index a4ac08475a..b22115aa84 100644 --- a/packages/deprecated/foundation-tokens/package.json +++ b/packages/deprecated/foundation-tokens/package.json @@ -57,11 +57,11 @@ "react-native-windows": "^0.74.0" }, "peerDependencies": { - "@office-iss/react-native-win32": "^0.73.0 || ^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "@office-iss/react-native-win32": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/deprecated/theme-registry/package.json b/packages/deprecated/theme-registry/package.json index 0ec2d8a97d..5208a7ab56 100644 --- a/packages/deprecated/theme-registry/package.json +++ b/packages/deprecated/theme-registry/package.json @@ -49,7 +49,7 @@ "react-native": "^0.74.0" }, "peerDependencies": { - "react": "18.2.0" + "react": "18.2.0 || 19.0.0 || 19.1.0" }, "rnx-kit": { "kitType": "library", diff --git a/packages/deprecated/themed-settings/package.json b/packages/deprecated/themed-settings/package.json index 7d8a7ef79c..e640d24bb4 100644 --- a/packages/deprecated/themed-settings/package.json +++ b/packages/deprecated/themed-settings/package.json @@ -52,7 +52,7 @@ "react-native": "^0.74.0" }, "peerDependencies": { - "react": "18.2.0" + "react": "18.2.0 || 19.0.0 || 19.1.0" }, "rnx-kit": { "kitType": "library", diff --git a/packages/deprecated/theming-ramp/package.json b/packages/deprecated/theming-ramp/package.json index 9f94f857af..41194cca85 100644 --- a/packages/deprecated/theming-ramp/package.json +++ b/packages/deprecated/theming-ramp/package.json @@ -52,7 +52,7 @@ "react-native": "^0.74.0" }, "peerDependencies": { - "react": "18.2.0" + "react": "18.2.0 || 19.0.0 || 19.1.0" }, "rnx-kit": { "kitType": "library", diff --git a/packages/deprecated/theming-react-native/package.json b/packages/deprecated/theming-react-native/package.json index f777c5cfa2..e8b752da87 100644 --- a/packages/deprecated/theming-react-native/package.json +++ b/packages/deprecated/theming-react-native/package.json @@ -55,10 +55,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/experimental/ActivityIndicator/package.json b/packages/experimental/ActivityIndicator/package.json index a5de466b55..6dcb81c864 100644 --- a/packages/experimental/ActivityIndicator/package.json +++ b/packages/experimental/ActivityIndicator/package.json @@ -52,11 +52,11 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/experimental/AppearanceAdditions/package.json b/packages/experimental/AppearanceAdditions/package.json index 8d872ff03b..0c66220cf3 100644 --- a/packages/experimental/AppearanceAdditions/package.json +++ b/packages/experimental/AppearanceAdditions/package.json @@ -53,10 +53,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/experimental/Avatar/package.json b/packages/experimental/Avatar/package.json index ea5a60186b..cd7f51bb47 100644 --- a/packages/experimental/Avatar/package.json +++ b/packages/experimental/Avatar/package.json @@ -53,10 +53,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/experimental/Checkbox/package.json b/packages/experimental/Checkbox/package.json index 40e39947c2..eac5108d7d 100644 --- a/packages/experimental/Checkbox/package.json +++ b/packages/experimental/Checkbox/package.json @@ -55,11 +55,11 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/experimental/Drawer/package.json b/packages/experimental/Drawer/package.json index 6b6328cf39..3a7fb35a23 100644 --- a/packages/experimental/Drawer/package.json +++ b/packages/experimental/Drawer/package.json @@ -57,10 +57,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/experimental/Dropdown/package.json b/packages/experimental/Dropdown/package.json index 7700d38a27..fcf362588c 100644 --- a/packages/experimental/Dropdown/package.json +++ b/packages/experimental/Dropdown/package.json @@ -59,11 +59,11 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/experimental/Expander/package.json b/packages/experimental/Expander/package.json index 65efd8f46e..2b8b743329 100644 --- a/packages/experimental/Expander/package.json +++ b/packages/experimental/Expander/package.json @@ -53,10 +53,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/experimental/MenuButton/package.json b/packages/experimental/MenuButton/package.json index e49fe1d0fc..fb5ade8ff7 100644 --- a/packages/experimental/MenuButton/package.json +++ b/packages/experimental/MenuButton/package.json @@ -59,11 +59,11 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/experimental/NativeDatePicker/package.json b/packages/experimental/NativeDatePicker/package.json index 4aeb708e46..4c16db9552 100644 --- a/packages/experimental/NativeDatePicker/package.json +++ b/packages/experimental/NativeDatePicker/package.json @@ -44,8 +44,8 @@ "react-native": "^0.74.0" }, "peerDependencies": { - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "rnx-kit": { "kitType": "library", diff --git a/packages/experimental/NativeFontMetrics/package.json b/packages/experimental/NativeFontMetrics/package.json index 1f6b60a598..7ea80ab852 100644 --- a/packages/experimental/NativeFontMetrics/package.json +++ b/packages/experimental/NativeFontMetrics/package.json @@ -48,8 +48,8 @@ "react-native": "^0.74.0" }, "peerDependencies": { - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "rnx-kit": { "kitType": "library", diff --git a/packages/experimental/Overflow/package.json b/packages/experimental/Overflow/package.json index d8c7d022d5..31e363f930 100644 --- a/packages/experimental/Overflow/package.json +++ b/packages/experimental/Overflow/package.json @@ -57,11 +57,11 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/experimental/Popover/package.json b/packages/experimental/Popover/package.json index ac31c61183..d2e2bd5f74 100644 --- a/packages/experimental/Popover/package.json +++ b/packages/experimental/Popover/package.json @@ -51,10 +51,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/experimental/Shadow/package.json b/packages/experimental/Shadow/package.json index ee4d5ac055..696b237db8 100644 --- a/packages/experimental/Shadow/package.json +++ b/packages/experimental/Shadow/package.json @@ -56,10 +56,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/experimental/Shimmer/package.json b/packages/experimental/Shimmer/package.json index 3b4912bdd1..0567b30870 100644 --- a/packages/experimental/Shimmer/package.json +++ b/packages/experimental/Shimmer/package.json @@ -59,11 +59,11 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/experimental/Spinner/package.json b/packages/experimental/Spinner/package.json index 6837465562..63dcacccfc 100644 --- a/packages/experimental/Spinner/package.json +++ b/packages/experimental/Spinner/package.json @@ -55,11 +55,11 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/experimental/Stack/package.json b/packages/experimental/Stack/package.json index 4cd0c35f29..6d0105be29 100644 --- a/packages/experimental/Stack/package.json +++ b/packages/experimental/Stack/package.json @@ -57,10 +57,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/experimental/Tooltip/package.json b/packages/experimental/Tooltip/package.json index 79e1b0ddce..21cf4c55de 100644 --- a/packages/experimental/Tooltip/package.json +++ b/packages/experimental/Tooltip/package.json @@ -57,11 +57,11 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/experimental/VibrancyView/package.json b/packages/experimental/VibrancyView/package.json index 7b657c2827..7e8e3c909f 100644 --- a/packages/experimental/VibrancyView/package.json +++ b/packages/experimental/VibrancyView/package.json @@ -50,11 +50,11 @@ "react-native-windows": "^0.74.0" }, "peerDependencies": { - "@office-iss/react-native-win32": "^0.73.0 || ^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "@office-iss/react-native-win32": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/framework-base/package.json b/packages/framework-base/package.json index 200b94b917..1a84b8ede5 100644 --- a/packages/framework-base/package.json +++ b/packages/framework-base/package.json @@ -51,7 +51,7 @@ "react": "18.2.0" }, "peerDependencies": { - "react": "18.2.0" + "react": "18.2.0 || 19.0.0 || 19.1.0" }, "rnx-kit": { "extends": "@fluentui-react-native/kit-config", diff --git a/packages/framework/composition/package.json b/packages/framework/composition/package.json index 63e179fc49..5fc6cc926b 100644 --- a/packages/framework/composition/package.json +++ b/packages/framework/composition/package.json @@ -54,7 +54,7 @@ "react-test-renderer": "18.2.0" }, "peerDependencies": { - "react": "18.2.0" + "react": "18.2.0 || 19.0.0 || 19.1.0" }, "rnx-kit": { "kitType": "library", diff --git a/packages/framework/framework/package.json b/packages/framework/framework/package.json index b2e6891fbb..33e81e05d8 100644 --- a/packages/framework/framework/package.json +++ b/packages/framework/framework/package.json @@ -64,10 +64,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/framework/immutable-merge/package.json b/packages/framework/immutable-merge/package.json index bbeb520ef3..594ae7de72 100644 --- a/packages/framework/immutable-merge/package.json +++ b/packages/framework/immutable-merge/package.json @@ -42,7 +42,7 @@ "react": "18.2.0" }, "peerDependencies": { - "react": "18.2.0" + "react": "18.2.0 || 19.0.0 || 19.1.0" }, "peerDependenciesMeta": { "react": { diff --git a/packages/framework/memo-cache/package.json b/packages/framework/memo-cache/package.json index 7fdd0b1f9b..0ed6cec4c8 100644 --- a/packages/framework/memo-cache/package.json +++ b/packages/framework/memo-cache/package.json @@ -43,7 +43,7 @@ "tslib": "^2.3.1" }, "peerDependencies": { - "react": "18.2.0" + "react": "18.2.0 || 19.0.0 || 19.1.0" }, "peerDependenciesMeta": { "react": { diff --git a/packages/framework/merge-props/package.json b/packages/framework/merge-props/package.json index 49947d4b1a..efdaa0f194 100644 --- a/packages/framework/merge-props/package.json +++ b/packages/framework/merge-props/package.json @@ -41,7 +41,7 @@ "react": "18.2.0" }, "peerDependencies": { - "react": "18.2.0" + "react": "18.2.0 || 19.0.0 || 19.1.0" }, "peerDependenciesMeta": { "react": { diff --git a/packages/framework/theme/package.json b/packages/framework/theme/package.json index 4f38f32a69..6f88d59722 100644 --- a/packages/framework/theme/package.json +++ b/packages/framework/theme/package.json @@ -53,8 +53,8 @@ "react-native": "^0.74.0" }, "peerDependencies": { - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "rnx-kit": { "kitType": "library", diff --git a/packages/framework/themed-stylesheet/package.json b/packages/framework/themed-stylesheet/package.json index 9399ce1ce4..d9be960c13 100644 --- a/packages/framework/themed-stylesheet/package.json +++ b/packages/framework/themed-stylesheet/package.json @@ -51,8 +51,8 @@ "react-native": "^0.74.0" }, "peerDependencies": { - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "rnx-kit": { "kitType": "library", diff --git a/packages/framework/use-slot/package.json b/packages/framework/use-slot/package.json index f390145916..c931d9900e 100644 --- a/packages/framework/use-slot/package.json +++ b/packages/framework/use-slot/package.json @@ -54,7 +54,7 @@ "react-test-renderer": "18.2.0" }, "peerDependencies": { - "react": "18.2.0" + "react": "18.2.0 || 19.0.0 || 19.1.0" }, "rnx-kit": { "kitType": "library", diff --git a/packages/framework/use-slots/package.json b/packages/framework/use-slots/package.json index 7b8051f7c7..ddd45ddaab 100644 --- a/packages/framework/use-slots/package.json +++ b/packages/framework/use-slots/package.json @@ -54,7 +54,7 @@ "react-test-renderer": "18.2.0" }, "peerDependencies": { - "react": "18.2.0" + "react": "18.2.0 || 19.0.0 || 19.1.0" }, "rnx-kit": { "kitType": "library", diff --git a/packages/framework/use-styling/package.json b/packages/framework/use-styling/package.json index 38ce73201b..b64df9f882 100644 --- a/packages/framework/use-styling/package.json +++ b/packages/framework/use-styling/package.json @@ -55,7 +55,7 @@ "react-test-renderer": "18.2.0" }, "peerDependencies": { - "react": "18.2.0" + "react": "18.2.0 || 19.0.0 || 19.1.0" }, "rnx-kit": { "kitType": "library", diff --git a/packages/framework/use-tokens/package.json b/packages/framework/use-tokens/package.json index 455a5cc642..bd56c3e0a3 100644 --- a/packages/framework/use-tokens/package.json +++ b/packages/framework/use-tokens/package.json @@ -54,7 +54,7 @@ "react-test-renderer": "18.2.0" }, "peerDependencies": { - "react": "18.2.0" + "react": "18.2.0 || 19.0.0 || 19.1.0" }, "rnx-kit": { "kitType": "library", diff --git a/packages/libraries/core/package.json b/packages/libraries/core/package.json index 122411d12b..8ebb9137f9 100644 --- a/packages/libraries/core/package.json +++ b/packages/libraries/core/package.json @@ -69,11 +69,11 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-svg": ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/theming/android-theme/package.json b/packages/theming/android-theme/package.json index c049a21f88..61b20a25c4 100644 --- a/packages/theming/android-theme/package.json +++ b/packages/theming/android-theme/package.json @@ -58,10 +58,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/theming/apple-theme/package.json b/packages/theming/apple-theme/package.json index 312b2eb997..6e96715912 100644 --- a/packages/theming/apple-theme/package.json +++ b/packages/theming/apple-theme/package.json @@ -63,10 +63,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/theming/default-theme/package.json b/packages/theming/default-theme/package.json index 3d8212bc57..15e851ab4c 100644 --- a/packages/theming/default-theme/package.json +++ b/packages/theming/default-theme/package.json @@ -60,10 +60,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/theming/theme-tokens/package.json b/packages/theming/theme-tokens/package.json index 2d0b44acf2..ed34fdb850 100644 --- a/packages/theming/theme-tokens/package.json +++ b/packages/theming/theme-tokens/package.json @@ -54,8 +54,8 @@ "react-native": "^0.74.0" }, "peerDependencies": { - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "rnx-kit": { "kitType": "library", diff --git a/packages/theming/theme-types/package.json b/packages/theming/theme-types/package.json index 3e62966c8f..6b389f1e30 100644 --- a/packages/theming/theme-types/package.json +++ b/packages/theming/theme-types/package.json @@ -46,8 +46,8 @@ "react-native": "^0.74.0" }, "peerDependencies": { - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "rnx-kit": { "kitType": "library", diff --git a/packages/theming/theming-utils/package.json b/packages/theming/theming-utils/package.json index 44fe564485..cd2a397ad0 100644 --- a/packages/theming/theming-utils/package.json +++ b/packages/theming/theming-utils/package.json @@ -54,10 +54,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/theming/win32-theme/package.json b/packages/theming/win32-theme/package.json index 4a8400949a..015a3de5d4 100644 --- a/packages/theming/win32-theme/package.json +++ b/packages/theming/win32-theme/package.json @@ -61,10 +61,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/utils/adapters/package.json b/packages/utils/adapters/package.json index e20555605b..e202f4c49f 100644 --- a/packages/utils/adapters/package.json +++ b/packages/utils/adapters/package.json @@ -47,11 +47,11 @@ "react-native-windows": "^0.74.0" }, "peerDependencies": { - "@office-iss/react-native-win32": "^0.73.0 || ^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "@office-iss/react-native-win32": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/utils/interactive-hooks/package.json b/packages/utils/interactive-hooks/package.json index 6b7d57a750..d9d1f8c0f1 100644 --- a/packages/utils/interactive-hooks/package.json +++ b/packages/utils/interactive-hooks/package.json @@ -59,10 +59,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/packages/utils/styling/package.json b/packages/utils/styling/package.json index 0a82d5f0a3..7fe8d4aa2f 100644 --- a/packages/utils/styling/package.json +++ b/packages/utils/styling/package.json @@ -43,8 +43,8 @@ "react-native": "^0.74.0" }, "peerDependencies": { - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "rnx-kit": { "kitType": "library", diff --git a/packages/utils/tokens/package.json b/packages/utils/tokens/package.json index f69f4c9654..0e33cee3c3 100644 --- a/packages/utils/tokens/package.json +++ b/packages/utils/tokens/package.json @@ -50,10 +50,10 @@ }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0", - "react-native-macos": "^0.73.0 || ^0.74.0", - "react-native-windows": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-macos": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", + "react-native-windows": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "peerDependenciesMeta": { "@office-iss/react-native-win32": { diff --git a/yarn.lock b/yarn.lock index 6732558331..f13d562246 100644 --- a/yarn.lock +++ b/yarn.lock @@ -301,7 +301,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.28.6": +"@babel/code-frame@npm:^7.24.7, @babel/code-frame@npm:^7.28.6": version: 7.28.6 resolution: "@babel/code-frame@npm:7.28.6" dependencies: @@ -349,6 +349,29 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:^7.25.2": + version: 7.28.6 + resolution: "@babel/core@npm:7.28.6" + dependencies: + "@babel/code-frame": "npm:^7.28.6" + "@babel/generator": "npm:^7.28.6" + "@babel/helper-compilation-targets": "npm:^7.28.6" + "@babel/helper-module-transforms": "npm:^7.28.6" + "@babel/helpers": "npm:^7.28.6" + "@babel/parser": "npm:^7.28.6" + "@babel/template": "npm:^7.28.6" + "@babel/traverse": "npm:^7.28.6" + "@babel/types": "npm:^7.28.6" + "@jridgewell/remapping": "npm:^2.3.5" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10c0/716b88b1ab057aa53ffa40f2b2fb7e4ab7a35cd6a065fa60e55ca13d2a666672592329f7ea9269aec17e90cc7ce29f42eda566d07859bfd998329a9f283faadb + languageName: node + linkType: hard + "@babel/generator@npm:^7.20.0, @babel/generator@npm:^7.28.0, @babel/generator@npm:^7.7.2": version: 7.28.0 resolution: "@babel/generator@npm:7.28.0" @@ -362,7 +385,7 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.28.6": +"@babel/generator@npm:^7.25.0, @babel/generator@npm:^7.28.6": version: 7.28.6 resolution: "@babel/generator@npm:7.28.6" dependencies: @@ -718,6 +741,16 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/helpers@npm:7.28.6" + dependencies: + "@babel/template": "npm:^7.28.6" + "@babel/types": "npm:^7.28.6" + checksum: 10c0/c4a779c66396bb0cf619402d92f1610601ff3832db2d3b86b9c9dd10983bf79502270e97ac6d5280cea1b1a37de2f06ecbac561bd2271545270407fbe64027cb + languageName: node + linkType: hard + "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.0, @babel/parser@npm:^7.20.15, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.3, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.27.2, @babel/parser@npm:^7.28.0": version: 7.28.0 resolution: "@babel/parser@npm:7.28.0" @@ -729,7 +762,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.28.6": +"@babel/parser@npm:^7.25.3, @babel/parser@npm:^7.28.6": version: 7.28.6 resolution: "@babel/parser@npm:7.28.6" dependencies: @@ -861,6 +894,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-proposal-export-default-from@npm:^7.24.7": + version: 7.27.1 + resolution: "@babel/plugin-proposal-export-default-from@npm:7.27.1" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.27.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/6e0756e0692245854028caea113dad2dc11fcdd479891a59d9a614a099e7e321f2bd25a1e3dd6f3b36ba9506a76f072f63adbf676e5ed51e7eeac277612e3db2 + languageName: node + linkType: hard + "@babel/plugin-proposal-logical-assignment-operators@npm:^7.18.0": version: 7.20.7 resolution: "@babel/plugin-proposal-logical-assignment-operators@npm:7.20.7" @@ -993,7 +1037,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-dynamic-import@npm:^7.8.0": +"@babel/plugin-syntax-dynamic-import@npm:^7.8.0, @babel/plugin-syntax-dynamic-import@npm:^7.8.3": version: 7.8.3 resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" dependencies: @@ -1015,6 +1059,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-export-default-from@npm:^7.24.7": + version: 7.28.6 + resolution: "@babel/plugin-syntax-export-default-from@npm:7.28.6" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.28.6" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/7d01ef992ab7e1c8a08c9e5ebacc2ff82e10592d9bc7964c9903a6766f01d371e45c25848f793393795d603d63f54dd0626b0a148df003f2a234a0a90bb31e93 + languageName: node + linkType: hard + "@babel/plugin-syntax-flow@npm:^7.12.1, @babel/plugin-syntax-flow@npm:^7.18.0, @babel/plugin-syntax-flow@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-syntax-flow@npm:7.24.7" @@ -1026,6 +1081,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-flow@npm:^7.27.1": + version: 7.28.6 + resolution: "@babel/plugin-syntax-flow@npm:7.28.6" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.28.6" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/a00114adcbbdaef07638f6a2e8c3ea63d65b3d27f088e8e53c5f35b8dc50813c0e1006fac4fb109782f9cdd41ad2f1cb9838359fecbb3d1f6141b4002358f52c + languageName: node + linkType: hard + "@babel/plugin-syntax-import-assertions@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-syntax-import-assertions@npm:7.27.1" @@ -1103,6 +1169,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-jsx@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/plugin-syntax-jsx@npm:7.28.6" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.28.6" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/b98fc3cd75e4ca3d5ca1162f610c286e14ede1486e0d297c13a5eb0ac85680ac9656d17d348bddd9160a54d797a08cea5eaac02b9330ddebb7b26732b7b99fb5 + languageName: node + linkType: hard + "@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4, @babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": version: 7.10.4 resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" @@ -1225,7 +1302,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.27.1": +"@babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.24.7, @babel/plugin-transform-arrow-functions@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-arrow-functions@npm:7.27.1" dependencies: @@ -1236,29 +1313,29 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.28.0": - version: 7.28.0 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.28.0" +"@babel/plugin-transform-async-generator-functions@npm:^7.25.4, @babel/plugin-transform-async-generator-functions@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.28.6" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.28.6" "@babel/helper-remap-async-to-generator": "npm:^7.27.1" - "@babel/traverse": "npm:^7.28.0" + "@babel/traverse": "npm:^7.28.6" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/739d577e649d7d7b9845dc309e132964327ab3eaea43ad04d04a7dcb977c63f9aa9a423d1ca39baf10939128d02f52e6fda39c834fb9f1753785b1497e72c4dc + checksum: 10c0/eddb94b0b990d8057c9c3587db3453eb586d1835626a9d683e6e8bef0ac5f708a76002951fb9cca80c902b3074b21b3a81b8af9090492561d9179862ce5716d8 languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.28.6" +"@babel/plugin-transform-async-generator-functions@npm:^7.28.0": + version: 7.28.0 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.28.0" dependencies: - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/helper-plugin-utils": "npm:^7.27.1" "@babel/helper-remap-async-to-generator": "npm:^7.27.1" - "@babel/traverse": "npm:^7.28.6" + "@babel/traverse": "npm:^7.28.0" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/eddb94b0b990d8057c9c3587db3453eb586d1835626a9d683e6e8bef0ac5f708a76002951fb9cca80c902b3074b21b3a81b8af9090492561d9179862ce5716d8 + checksum: 10c0/739d577e649d7d7b9845dc309e132964327ab3eaea43ad04d04a7dcb977c63f9aa9a423d1ca39baf10939128d02f52e6fda39c834fb9f1753785b1497e72c4dc languageName: node linkType: hard @@ -1275,7 +1352,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.28.6": +"@babel/plugin-transform-async-to-generator@npm:^7.24.7, @babel/plugin-transform-async-to-generator@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-async-to-generator@npm:7.28.6" dependencies: @@ -1310,7 +1387,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.28.6": +"@babel/plugin-transform-block-scoping@npm:^7.25.0, @babel/plugin-transform-block-scoping@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-block-scoping@npm:7.28.6" dependencies: @@ -1333,7 +1410,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:^7.28.6": +"@babel/plugin-transform-class-properties@npm:^7.25.4, @babel/plugin-transform-class-properties@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-class-properties@npm:7.28.6" dependencies: @@ -1385,7 +1462,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.28.6": +"@babel/plugin-transform-classes@npm:^7.25.4, @babel/plugin-transform-classes@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-classes@npm:7.28.6" dependencies: @@ -1413,7 +1490,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.28.6": +"@babel/plugin-transform-computed-properties@npm:^7.24.7, @babel/plugin-transform-computed-properties@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-computed-properties@npm:7.28.6" dependencies: @@ -1437,7 +1514,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.28.5": +"@babel/plugin-transform-destructuring@npm:^7.24.8, @babel/plugin-transform-destructuring@npm:^7.28.5": version: 7.28.5 resolution: "@babel/plugin-transform-destructuring@npm:7.28.5" dependencies: @@ -1588,7 +1665,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.27.1": +"@babel/plugin-transform-flow-strip-types@npm:^7.25.2": + version: 7.27.1 + resolution: "@babel/plugin-transform-flow-strip-types@npm:7.27.1" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/plugin-syntax-flow": "npm:^7.27.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/c61c43244aacdcd479ad9ba618e1c095a5db7e4eadc3d19249602febc4e97153230273c014933f5fe4e92062fa56dab9bed4bc430197d5b2ffeb2158a4bf6786 + languageName: node + linkType: hard + +"@babel/plugin-transform-for-of@npm:^7.24.7, @babel/plugin-transform-for-of@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-for-of@npm:7.27.1" dependencies: @@ -1600,7 +1689,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.0.0, @babel/plugin-transform-function-name@npm:^7.27.1": +"@babel/plugin-transform-function-name@npm:^7.0.0, @babel/plugin-transform-function-name@npm:^7.25.1, @babel/plugin-transform-function-name@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-function-name@npm:7.27.1" dependencies: @@ -1635,7 +1724,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.0.0, @babel/plugin-transform-literals@npm:^7.27.1": +"@babel/plugin-transform-literals@npm:^7.0.0, @babel/plugin-transform-literals@npm:^7.25.2, @babel/plugin-transform-literals@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-literals@npm:7.27.1" dependencies: @@ -1646,25 +1735,25 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.27.1" +"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7, @babel/plugin-transform-logical-assignment-operators@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.28.6" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.28.6" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/5b0abc7c0d09d562bf555c646dce63a30288e5db46fd2ce809a61d064415da6efc3b2b3c59b8e4fe98accd072c89a2f7c3765b400e4bf488651735d314d9feeb + checksum: 10c0/4632a35453d2131f0be466681d0a33e3db44d868ff51ec46cd87e0ebd1e47c6a39b894f7d1c9b06f931addf6efa9d30e60c4cdedeb4f69d426f683e11f8490cf languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.28.6" +"@babel/plugin-transform-logical-assignment-operators@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/4632a35453d2131f0be466681d0a33e3db44d868ff51ec46cd87e0ebd1e47c6a39b894f7d1c9b06f931addf6efa9d30e60c4cdedeb4f69d426f683e11f8490cf + checksum: 10c0/5b0abc7c0d09d562bf555c646dce63a30288e5db46fd2ce809a61d064415da6efc3b2b3c59b8e4fe98accd072c89a2f7c3765b400e4bf488651735d314d9feeb languageName: node linkType: hard @@ -1703,7 +1792,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.28.6": +"@babel/plugin-transform-modules-commonjs@npm:^7.24.8, @babel/plugin-transform-modules-commonjs@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-modules-commonjs@npm:7.28.6" dependencies: @@ -1755,7 +1844,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.0.0, @babel/plugin-transform-named-capturing-groups-regex@npm:^7.27.1": +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.0.0, @babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.7, @babel/plugin-transform-named-capturing-groups-regex@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.27.1" dependencies: @@ -1800,6 +1889,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-numeric-separator@npm:^7.24.7, @babel/plugin-transform-numeric-separator@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.28.6" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.28.6" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/191097d8d2753cdd16d1acca65a945d1645ab20b65655c2f5b030a9e38967a52e093dcb21ebf391e342222705c6ffe5dea15dafd6257f7b51b77fb64a830b637 + languageName: node + linkType: hard + "@babel/plugin-transform-numeric-separator@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-numeric-separator@npm:7.27.1" @@ -1811,14 +1911,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.28.6": +"@babel/plugin-transform-object-rest-spread@npm:^7.24.7, @babel/plugin-transform-object-rest-spread@npm:^7.28.6": version: 7.28.6 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.28.6" + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.28.6" dependencies: + "@babel/helper-compilation-targets": "npm:^7.28.6" "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/plugin-transform-destructuring": "npm:^7.28.5" + "@babel/plugin-transform-parameters": "npm:^7.27.7" + "@babel/traverse": "npm:^7.28.6" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/191097d8d2753cdd16d1acca65a945d1645ab20b65655c2f5b030a9e38967a52e093dcb21ebf391e342222705c6ffe5dea15dafd6257f7b51b77fb64a830b637 + checksum: 10c0/f55334352d4fcde385f2e8a58836687e71ff668c9b6e4c34d52575bf2789cdde92d9d3116edba13647ac0bc3e51fb2a6d1e8fb822dce7e8123334b82600bc4c3 languageName: node linkType: hard @@ -1837,21 +1941,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.28.6" - dependencies: - "@babel/helper-compilation-targets": "npm:^7.28.6" - "@babel/helper-plugin-utils": "npm:^7.28.6" - "@babel/plugin-transform-destructuring": "npm:^7.28.5" - "@babel/plugin-transform-parameters": "npm:^7.27.7" - "@babel/traverse": "npm:^7.28.6" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/f55334352d4fcde385f2e8a58836687e71ff668c9b6e4c34d52575bf2789cdde92d9d3116edba13647ac0bc3e51fb2a6d1e8fb822dce7e8123334b82600bc4c3 - languageName: node - linkType: hard - "@babel/plugin-transform-object-super@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-object-super@npm:7.27.1" @@ -1864,25 +1953,25 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.27.1" +"@babel/plugin-transform-optional-catch-binding@npm:^7.24.7, @babel/plugin-transform-optional-catch-binding@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.28.6" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.28.6" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/807a4330f1fac08e2682d57bc82e714868fc651c8876f9a8b3a3fd8f53c129e87371f8243e712ac7dae11e090b737a2219a02fe1b6459a29e664fa073c3277bb + checksum: 10c0/36e8face000ee65e478a55febf687ce9be7513ad498c60dfe585851555565e0c28e7cb891b3c59709318539ce46f7697d5f42130eb18f385cd47e47cfa297446 languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.28.6" +"@babel/plugin-transform-optional-catch-binding@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/36e8face000ee65e478a55febf687ce9be7513ad498c60dfe585851555565e0c28e7cb891b3c59709318539ce46f7697d5f42130eb18f385cd47e47cfa297446 + checksum: 10c0/807a4330f1fac08e2682d57bc82e714868fc651c8876f9a8b3a3fd8f53c129e87371f8243e712ac7dae11e090b737a2219a02fe1b6459a29e664fa073c3277bb languageName: node linkType: hard @@ -1898,7 +1987,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.28.6": +"@babel/plugin-transform-optional-chaining@npm:^7.24.8, @babel/plugin-transform-optional-chaining@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-optional-chaining@npm:7.28.6" dependencies: @@ -1910,7 +1999,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.0.0, @babel/plugin-transform-parameters@npm:^7.20.7, @babel/plugin-transform-parameters@npm:^7.27.7": +"@babel/plugin-transform-parameters@npm:^7.0.0, @babel/plugin-transform-parameters@npm:^7.20.7, @babel/plugin-transform-parameters@npm:^7.24.7, @babel/plugin-transform-parameters@npm:^7.27.7": version: 7.27.7 resolution: "@babel/plugin-transform-parameters@npm:7.27.7" dependencies: @@ -1958,7 +2047,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.28.6": +"@babel/plugin-transform-private-property-in-object@npm:^7.24.7, @babel/plugin-transform-private-property-in-object@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-private-property-in-object@npm:7.28.6" dependencies: @@ -1993,7 +2082,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-display-name@npm:^7.28.0": +"@babel/plugin-transform-react-display-name@npm:^7.24.7, @babel/plugin-transform-react-display-name@npm:^7.28.0": version: 7.28.0 resolution: "@babel/plugin-transform-react-display-name@npm:7.28.0" dependencies: @@ -2026,7 +2115,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-source@npm:^7.0.0, @babel/plugin-transform-react-jsx-source@npm:^7.22.0": +"@babel/plugin-transform-react-jsx-self@npm:^7.24.7": + version: 7.27.1 + resolution: "@babel/plugin-transform-react-jsx-self@npm:7.27.1" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.27.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/00a4f917b70a608f9aca2fb39aabe04a60aa33165a7e0105fd44b3a8531630eb85bf5572e9f242f51e6ad2fa38c2e7e780902176c863556c58b5ba6f6e164031 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-source@npm:^7.0.0, @babel/plugin-transform-react-jsx-source@npm:^7.22.0, @babel/plugin-transform-react-jsx-source@npm:^7.24.7": version: 7.27.1 resolution: "@babel/plugin-transform-react-jsx-source@npm:7.27.1" dependencies: @@ -2052,6 +2152,21 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-jsx@npm:^7.25.2": + version: 7.28.6 + resolution: "@babel/plugin-transform-react-jsx@npm:7.28.6" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.27.3" + "@babel/helper-module-imports": "npm:^7.28.6" + "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/plugin-syntax-jsx": "npm:^7.28.6" + "@babel/types": "npm:^7.28.6" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/cc75b9bb3997751df6cf7e86afe1b3fa33130b5031a412f6f12cc5faec083650fe852de0af5ec8f88d3588cc3428a3f514d3bc1f423d26f8b014cc5dff9f15a7 + languageName: node + linkType: hard + "@babel/plugin-transform-react-pure-annotations@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.27.1" @@ -2064,25 +2179,25 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.28.0": - version: 7.28.1 - resolution: "@babel/plugin-transform-regenerator@npm:7.28.1" +"@babel/plugin-transform-regenerator@npm:^7.24.7, @babel/plugin-transform-regenerator@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/plugin-transform-regenerator@npm:7.28.6" dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.28.6" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/6c9e6eb80ce9c0bde0876c80979e078fbc85dc802272cba4ee72b5b1c858472e38167c418917e4f0d4384ce888706d95544a8d266880c0e199e167e078168b67 + checksum: 10c0/dbb65b7444548807aee558cdaf23996e7a0f6c3bced09c6b5d177734b3addcaf417532186e330341758979651e2af8cb98ae572f794f05c0e2e201e5593a5ffe languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-regenerator@npm:7.28.6" +"@babel/plugin-transform-regenerator@npm:^7.28.0": + version: 7.28.1 + resolution: "@babel/plugin-transform-regenerator@npm:7.28.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/dbb65b7444548807aee558cdaf23996e7a0f6c3bced09c6b5d177734b3addcaf417532186e330341758979651e2af8cb98ae572f794f05c0e2e201e5593a5ffe + checksum: 10c0/6c9e6eb80ce9c0bde0876c80979e078fbc85dc802272cba4ee72b5b1c858472e38167c418917e4f0d4384ce888706d95544a8d266880c0e199e167e078168b67 languageName: node linkType: hard @@ -2137,7 +2252,23 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.27.1": +"@babel/plugin-transform-runtime@npm:^7.24.7": + version: 7.28.5 + resolution: "@babel/plugin-transform-runtime@npm:7.28.5" + dependencies: + "@babel/helper-module-imports": "npm:^7.27.1" + "@babel/helper-plugin-utils": "npm:^7.27.1" + babel-plugin-polyfill-corejs2: "npm:^0.4.14" + babel-plugin-polyfill-corejs3: "npm:^0.13.0" + babel-plugin-polyfill-regenerator: "npm:^0.6.5" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/d20901d179a7044327dec7b37dd4fadbc4c1c0dc1cb6a3dd69e67166b43b06c262dd0f2e70aedf1c0dab42044c0c063468d99019ae1c9290312b6b8802c502f9 + languageName: node + linkType: hard + +"@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.24.7, @babel/plugin-transform-shorthand-properties@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-shorthand-properties@npm:7.27.1" dependencies: @@ -2160,7 +2291,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.28.6": +"@babel/plugin-transform-spread@npm:^7.24.7, @babel/plugin-transform-spread@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-spread@npm:7.28.6" dependencies: @@ -2172,7 +2303,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.0.0, @babel/plugin-transform-sticky-regex@npm:^7.27.1": +"@babel/plugin-transform-sticky-regex@npm:^7.0.0, @babel/plugin-transform-sticky-regex@npm:^7.24.7, @babel/plugin-transform-sticky-regex@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-sticky-regex@npm:7.27.1" dependencies: @@ -2220,7 +2351,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-typescript@npm:^7.28.5": +"@babel/plugin-transform-typescript@npm:^7.25.2, @babel/plugin-transform-typescript@npm:^7.28.5": version: 7.28.6 resolution: "@babel/plugin-transform-typescript@npm:7.28.6" dependencies: @@ -2270,7 +2401,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.0.0, @babel/plugin-transform-unicode-regex@npm:^7.27.1": +"@babel/plugin-transform-unicode-regex@npm:^7.0.0, @babel/plugin-transform-unicode-regex@npm:^7.24.7, @babel/plugin-transform-unicode-regex@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-unicode-regex@npm:7.27.1" dependencies: @@ -2571,7 +2702,7 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.28.6": +"@babel/template@npm:^7.25.0, @babel/template@npm:^7.28.6": version: 7.28.6 resolution: "@babel/template@npm:7.28.6" dependencies: @@ -2582,7 +2713,7 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.16.0, @babel/traverse@npm:^7.28.5, @babel/traverse@npm:^7.28.6": +"@babel/traverse--for-generate-function-map@npm:@babel/traverse@^7.25.3, @babel/traverse@npm:^7.16.0, @babel/traverse@npm:^7.25.3, @babel/traverse@npm:^7.28.5, @babel/traverse@npm:^7.28.6": version: 7.28.6 resolution: "@babel/traverse@npm:7.28.6" dependencies: @@ -2622,7 +2753,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.28.5, @babel/types@npm:^7.28.6": +"@babel/types@npm:^7.25.2, @babel/types@npm:^7.28.5, @babel/types@npm:^7.28.6": version: 7.28.6 resolution: "@babel/types@npm:7.28.6" dependencies: @@ -2708,6 +2839,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/aix-ppc64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/aix-ppc64@npm:0.27.2" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + "@esbuild/android-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/android-arm64@npm:0.25.5" @@ -2715,6 +2853,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/android-arm64@npm:0.27.2" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/android-arm@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/android-arm@npm:0.25.5" @@ -2722,6 +2867,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-arm@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/android-arm@npm:0.27.2" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@esbuild/android-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/android-x64@npm:0.25.5" @@ -2729,6 +2881,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/android-x64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/android-x64@npm:0.27.2" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + "@esbuild/darwin-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/darwin-arm64@npm:0.25.5" @@ -2736,6 +2895,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-arm64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/darwin-arm64@npm:0.27.2" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/darwin-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/darwin-x64@npm:0.25.5" @@ -2743,6 +2909,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/darwin-x64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/darwin-x64@npm:0.27.2" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + "@esbuild/freebsd-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/freebsd-arm64@npm:0.25.5" @@ -2750,6 +2923,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-arm64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/freebsd-arm64@npm:0.27.2" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/freebsd-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/freebsd-x64@npm:0.25.5" @@ -2757,6 +2937,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/freebsd-x64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/freebsd-x64@npm:0.27.2" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/linux-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-arm64@npm:0.25.5" @@ -2764,6 +2951,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/linux-arm64@npm:0.27.2" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/linux-arm@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-arm@npm:0.25.5" @@ -2771,6 +2965,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-arm@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/linux-arm@npm:0.27.2" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + "@esbuild/linux-ia32@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-ia32@npm:0.25.5" @@ -2778,6 +2979,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-ia32@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/linux-ia32@npm:0.27.2" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/linux-loong64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-loong64@npm:0.25.5" @@ -2785,6 +2993,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-loong64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/linux-loong64@npm:0.27.2" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + "@esbuild/linux-mips64el@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-mips64el@npm:0.25.5" @@ -2792,9 +3007,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.25.5": - version: 0.25.5 - resolution: "@esbuild/linux-ppc64@npm:0.25.5" +"@esbuild/linux-mips64el@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/linux-mips64el@npm:0.27.2" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.25.5": + version: 0.25.5 + resolution: "@esbuild/linux-ppc64@npm:0.25.5" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/linux-ppc64@npm:0.27.2" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard @@ -2806,6 +3035,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-riscv64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/linux-riscv64@npm:0.27.2" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + "@esbuild/linux-s390x@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-s390x@npm:0.25.5" @@ -2813,6 +3049,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-s390x@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/linux-s390x@npm:0.27.2" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + "@esbuild/linux-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/linux-x64@npm:0.25.5" @@ -2820,6 +3063,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/linux-x64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/linux-x64@npm:0.27.2" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + "@esbuild/netbsd-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/netbsd-arm64@npm:0.25.5" @@ -2827,6 +3077,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-arm64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/netbsd-arm64@npm:0.27.2" + conditions: os=netbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/netbsd-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/netbsd-x64@npm:0.25.5" @@ -2834,6 +3091,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/netbsd-x64@npm:0.27.2" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + "@esbuild/openbsd-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/openbsd-arm64@npm:0.25.5" @@ -2841,6 +3105,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-arm64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/openbsd-arm64@npm:0.27.2" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/openbsd-x64@npm:0.25.5" @@ -2848,6 +3119,20 @@ __metadata: languageName: node linkType: hard +"@esbuild/openbsd-x64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/openbsd-x64@npm:0.27.2" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openharmony-arm64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/openharmony-arm64@npm:0.27.2" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/sunos-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/sunos-x64@npm:0.25.5" @@ -2855,6 +3140,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/sunos-x64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/sunos-x64@npm:0.27.2" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + "@esbuild/win32-arm64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/win32-arm64@npm:0.25.5" @@ -2862,6 +3154,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-arm64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/win32-arm64@npm:0.27.2" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/win32-ia32@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/win32-ia32@npm:0.25.5" @@ -2869,6 +3168,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-ia32@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/win32-ia32@npm:0.27.2" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@esbuild/win32-x64@npm:0.25.5": version: 0.25.5 resolution: "@esbuild/win32-x64@npm:0.25.5" @@ -2876,6 +3182,13 @@ __metadata: languageName: node linkType: hard +"@esbuild/win32-x64@npm:0.27.2": + version: 0.27.2 + resolution: "@esbuild/win32-x64@npm:0.27.2" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": version: 4.7.0 resolution: "@eslint-community/eslint-utils@npm:4.7.0" @@ -3060,11 +3373,11 @@ __metadata: react-native-macos: "npm:^0.74.0" react-native-windows: "npm:^0.74.0" peerDependencies: - "@office-iss/react-native-win32": ^0.73.0 || ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + "@office-iss/react-native-win32": ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -3099,10 +3412,10 @@ __metadata: react-native-windows: "npm:^0.74.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -3142,10 +3455,10 @@ __metadata: react-native-windows: "npm:^0.74.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -3189,11 +3502,11 @@ __metadata: unicode-segmenter: "npm:^0.14.4" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -3260,11 +3573,11 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -3317,11 +3630,11 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -3359,10 +3672,10 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -3411,11 +3724,11 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -3459,11 +3772,11 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -3514,7 +3827,7 @@ __metadata: react-native: "npm:^0.74.0" react-test-renderer: "npm:18.2.0" peerDependencies: - react: 18.2.0 + react: 18.2.0 || 19.0.0 || 19.1.0 languageName: unknown linkType: soft @@ -3556,11 +3869,11 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -3597,10 +3910,10 @@ __metadata: react-native-windows: "npm:^0.74.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -3764,11 +4077,11 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -3805,10 +4118,10 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -3847,11 +4160,11 @@ __metadata: react-native-windows: "npm:^0.74.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -3904,11 +4217,11 @@ __metadata: ts-node: "npm:^10.7.0" webdriverio: "catalog:" peerDependencies: - "@office-iss/react-native-win32": ^0.73.0 || ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + "@office-iss/react-native-win32": ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -3954,11 +4267,11 @@ __metadata: react-native-windows: "npm:^0.74.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -3989,10 +4302,10 @@ __metadata: use-subscription: "npm:^1.11.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -4024,10 +4337,10 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -4062,11 +4375,11 @@ __metadata: react-native-windows: "npm:^0.74.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -4096,10 +4409,10 @@ __metadata: react-native-windows: "npm:^0.74.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -4138,11 +4451,11 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -4167,8 +4480,8 @@ __metadata: react: "npm:18.2.0" react-native: "npm:^0.74.0" peerDependencies: - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 languageName: unknown linkType: soft @@ -4188,8 +4501,8 @@ __metadata: react-native: "npm:^0.74.0" use-subscription: "npm:^1.11.0" peerDependencies: - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 languageName: unknown linkType: soft @@ -4218,10 +4531,10 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -4260,11 +4573,11 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -4300,10 +4613,10 @@ __metadata: tslib: "npm:^2.3.1" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -4340,10 +4653,10 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -4381,10 +4694,10 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -4409,7 +4722,7 @@ __metadata: "@types/react": "npm:~18.2.0" react: "npm:18.2.0" peerDependencies: - react: 18.2.0 + react: 18.2.0 || 19.0.0 || 19.1.0 languageName: unknown linkType: soft @@ -4444,10 +4757,10 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -4485,11 +4798,11 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -4512,7 +4825,7 @@ __metadata: "@types/react": "npm:~18.2.0" react: "npm:18.2.0" peerDependencies: - react: 18.2.0 + react: 18.2.0 || 19.0.0 || 19.1.0 peerDependenciesMeta: react: optional: true @@ -4551,11 +4864,11 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -4594,10 +4907,10 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -4669,10 +4982,10 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -4696,7 +5009,7 @@ __metadata: react: "npm:18.2.0" tslib: "npm:^2.3.1" peerDependencies: - react: 18.2.0 + react: 18.2.0 || 19.0.0 || 19.1.0 peerDependenciesMeta: react: optional: true @@ -4734,11 +5047,11 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -4787,11 +5100,11 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -4813,7 +5126,7 @@ __metadata: "@types/react": "npm:~18.2.0" react: "npm:18.2.0" peerDependencies: - react: 18.2.0 + react: 18.2.0 || 19.0.0 || 19.1.0 peerDependenciesMeta: react: optional: true @@ -4858,11 +5171,11 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -4899,11 +5212,11 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -4941,10 +5254,10 @@ __metadata: react-native-windows: "npm:^0.74.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -4981,10 +5294,10 @@ __metadata: react-native-windows: "npm:^0.74.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -5015,10 +5328,10 @@ __metadata: react-native-windows: "npm:^0.74.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -5050,10 +5363,10 @@ __metadata: react-native-windows: "npm:^0.74.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -5101,11 +5414,11 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -5218,10 +5531,10 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -5256,11 +5569,11 @@ __metadata: react-native-windows: "npm:^0.74.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -5301,10 +5614,10 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -5329,8 +5642,8 @@ __metadata: react: "npm:18.2.0" react-native: "npm:^0.74.0" peerDependencies: - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 languageName: unknown linkType: soft @@ -5365,10 +5678,10 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -5413,11 +5726,11 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -5564,12 +5877,12 @@ __metadata: "@fluentui-react-native/tester-core": "workspace:*" "@fluentui-react-native/tooltip": "workspace:*" "@fluentui-react-native/vibrancy-view": "workspace:*" - "@office-iss/react-native-win32": ^0.73.0 || ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + "@office-iss/react-native-win32": ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@fluentui-react-native/callout": optional: true @@ -5600,6 +5913,42 @@ __metadata: languageName: unknown linkType: soft +"@fluentui-react-native/tester-win32-81@workspace:apps/win32-81": + version: 0.0.0-use.local + resolution: "@fluentui-react-native/tester-win32-81@workspace:apps/win32-81" + dependencies: + "@babel/core": "catalog:" + "@babel/runtime": "catalog:" + "@fluentui-react-native/babel-config": "workspace:*" + "@fluentui-react-native/eslint-config-rules": "workspace:*" + "@fluentui-react-native/kit-config": "workspace:*" + "@fluentui-react-native/scripts": "workspace:*" + "@fluentui-react-native/tester-core": "workspace:*" + "@office-iss/react-native-win32": "npm:^0.81.0" + "@office-iss/rex-win32": "npm:0.81.0-preview.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-babel-transformer": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@rnx-kit/babel-preset-metro-react-native": "catalog:" + "@rnx-kit/cli": "catalog:" + "@rnx-kit/metro-config": "catalog:" + "@rnx-kit/metro-resolver-symlinks": "catalog:" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + metro-config: "npm:^0.83.1" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" + react-native-svg-transformer: "npm:^1.0.0" + react-native-test-app: "npm:^4.4.11" + react-test-renderer: "npm:19.1.0" + rimraf: "catalog:" + languageName: unknown + linkType: soft + "@fluentui-react-native/tester-win32@npm:*, @fluentui-react-native/tester-win32@workspace:apps/win32": version: 0.0.0-use.local resolution: "@fluentui-react-native/tester-win32@workspace:apps/win32" @@ -5730,10 +6079,10 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -5764,8 +6113,8 @@ __metadata: react: "npm:18.2.0" react-native: "npm:^0.74.0" peerDependencies: - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 languageName: unknown linkType: soft @@ -5783,8 +6132,8 @@ __metadata: react: "npm:18.2.0" react-native: "npm:^0.74.0" peerDependencies: - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 languageName: unknown linkType: soft @@ -5807,8 +6156,8 @@ __metadata: react: "npm:18.2.0" react-native: "npm:^0.74.0" peerDependencies: - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 languageName: unknown linkType: soft @@ -5829,8 +6178,8 @@ __metadata: react: "npm:18.2.0" react-native: "npm:^0.74.0" peerDependencies: - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 languageName: unknown linkType: soft @@ -5857,10 +6206,10 @@ __metadata: react-native-windows: "npm:^0.74.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -5890,10 +6239,10 @@ __metadata: react-native-windows: "npm:^0.74.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -5930,11 +6279,11 @@ __metadata: react-test-renderer: "npm:18.2.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -5965,7 +6314,7 @@ __metadata: react-native: "npm:^0.74.0" react-test-renderer: "npm:18.2.0" peerDependencies: - react: 18.2.0 + react: 18.2.0 || 19.0.0 || 19.1.0 languageName: unknown linkType: soft @@ -5989,7 +6338,7 @@ __metadata: react-native: "npm:^0.74.0" react-test-renderer: "npm:18.2.0" peerDependencies: - react: 18.2.0 + react: 18.2.0 || 19.0.0 || 19.1.0 languageName: unknown linkType: soft @@ -6014,7 +6363,7 @@ __metadata: react-native: "npm:^0.74.0" react-test-renderer: "npm:18.2.0" peerDependencies: - react: 18.2.0 + react: 18.2.0 || 19.0.0 || 19.1.0 languageName: unknown linkType: soft @@ -6038,7 +6387,7 @@ __metadata: react-native: "npm:^0.74.0" react-test-renderer: "npm:18.2.0" peerDependencies: - react: 18.2.0 + react: 18.2.0 || 19.0.0 || 19.1.0 languageName: unknown linkType: soft @@ -6060,11 +6409,11 @@ __metadata: react-native-macos: "npm:^0.74.0" react-native-windows: "npm:^0.74.0" peerDependencies: - "@office-iss/react-native-win32": ^0.73.0 || ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + "@office-iss/react-native-win32": ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -6102,10 +6451,10 @@ __metadata: react-native-windows: "npm:^0.74.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -6165,11 +6514,11 @@ __metadata: react-native-windows: "npm:^0.74.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0" - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-svg: ">=15.0.0 <15.13.0 || >=15.4.0 <15.13.0 || ^15.11.2 || ^15.12.1" + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -6859,7 +7208,7 @@ __metadata: languageName: node linkType: hard -"@jest/create-cache-key-function@npm:^29.6.3": +"@jest/create-cache-key-function@npm:^29.6.3, @jest/create-cache-key-function@npm:^29.7.0": version: 29.7.0 resolution: "@jest/create-cache-key-function@npm:29.7.0" dependencies: @@ -7123,6 +7472,16 @@ __metadata: languageName: node linkType: hard +"@jridgewell/remapping@npm:^2.3.5": + version: 2.3.5 + resolution: "@jridgewell/remapping@npm:2.3.5" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10c0/3de494219ffeb2c5c38711d0d7bb128097edf91893090a2dbc8ee0b55d092bb7347b1fd0f478486c5eab010e855c73927b1666f2107516d472d24a73017d1194 + languageName: node + linkType: hard + "@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": version: 3.1.2 resolution: "@jridgewell/resolve-uri@npm:3.1.2" @@ -7288,6 +7647,62 @@ __metadata: languageName: node linkType: hard +"@office-iss/react-native-win32@npm:^0.81.0": + version: 0.81.2 + resolution: "@office-iss/react-native-win32@npm:0.81.2" + dependencies: + "@babel/runtime": "npm:^7.0.0" + "@jest/create-cache-key-function": "npm:^29.7.0" + "@react-native-community/cli": "npm:17.0.0" + "@react-native-community/cli-platform-android": "npm:17.0.0" + "@react-native-community/cli-platform-ios": "npm:17.0.0" + "@react-native/assets": "npm:1.0.0" + "@react-native/assets-registry": "npm:0.81.5" + "@react-native/codegen": "npm:0.81.5" + "@react-native/community-cli-plugin": "npm:0.81.5" + "@react-native/gradle-plugin": "npm:0.81.5" + "@react-native/js-polyfills": "npm:0.81.5" + "@react-native/normalize-colors": "npm:0.81.5" + "@react-native/virtualized-lists": "npm:0.81.5" + abort-controller: "npm:^3.0.0" + anser: "npm:^1.4.9" + ansi-regex: "npm:^5.0.0" + art: "npm:^0.10.0" + babel-jest: "npm:^29.7.0" + babel-plugin-syntax-hermes-parser: "npm:0.28.1" + base64-js: "npm:^1.5.1" + chalk: "npm:^4.0.0" + commander: "npm:^12.0.0" + event-target-shim: "npm:^5.0.1" + flow-enums-runtime: "npm:^0.0.6" + glob: "npm:^7.1.1" + invariant: "npm:^2.2.4" + jest-environment-node: "npm:^29.7.0" + memoize-one: "npm:^5.0.0" + metro-runtime: "npm:^0.83.1" + metro-source-map: "npm:^0.82.2" + mkdirp: "npm:^0.5.1" + nullthrows: "npm:^1.1.1" + pretty-format: "npm:^29.7.0" + promise: "npm:^8.3.0" + react-clone-referenced-element: "npm:^1.0.1" + react-devtools-core: "npm:^6.1.1" + react-refresh: "npm:^0.14.0" + regenerator-runtime: "npm:^0.13.2" + scheduler: "npm:0.26.0" + semver: "npm:^7.1.3" + stacktrace-parser: "npm:^0.1.10" + whatwg-fetch: "npm:^3.0.0" + ws: "npm:^6.2.3" + yargs: "npm:^17.6.2" + peerDependencies: + "@types/react": ^19.1.0 + react: ^19.1.0 + react-native: 0.81.5 + checksum: 10c0/647be89d3298486e0f622584ab27fee1ed5c84f2a43cbfdc19f953f7ce28b2da909f285e0f95d1052d4505cdba0959e0a0189061f3ed4b340360b6df4d0f72ca + languageName: node + linkType: hard + "@office-iss/rex-win32@npm:0.73.11-devmain.16.0.17615.15030": version: 0.73.11-devmain.16.0.17615.15030 resolution: "@office-iss/rex-win32@npm:0.73.11-devmain.16.0.17615.15030" @@ -7300,6 +7715,18 @@ __metadata: languageName: node linkType: hard +"@office-iss/rex-win32@npm:0.81.0-preview.0": + version: 0.81.0-preview.0 + resolution: "@office-iss/rex-win32@npm:0.81.0-preview.0" + dependencies: + command-line-args: "npm:^5.0.2" + command-line-usage: "npm:^5.0.5" + bin: + rex-win32: rex-win32.js + checksum: 10c0/fc56c0cda10081d22a657f8c4e62d53500466bd899a7a72f06c226eb1aafd1dca1a3abf055ff2e490e945b462a9f0bb7b81022cdb25fbebd4c2a427808a6c322 + languageName: node + linkType: hard + "@oozcitak/dom@npm:1.15.10": version: 1.15.10 resolution: "@oozcitak/dom@npm:1.15.10" @@ -7589,17 +8016,117 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-config@npm:13.6.9": - version: 13.6.9 - resolution: "@react-native-community/cli-config@npm:13.6.9" +"@react-native-community/cli-clean@npm:17.0.0": + version: 17.0.0 + resolution: "@react-native-community/cli-clean@npm:17.0.0" dependencies: - "@react-native-community/cli-tools": "npm:13.6.9" + "@react-native-community/cli-tools": "npm:17.0.0" chalk: "npm:^4.1.2" - cosmiconfig: "npm:^5.1.0" - deepmerge: "npm:^4.3.0" + execa: "npm:^5.0.0" fast-glob: "npm:^3.3.2" - joi: "npm:^17.2.1" - checksum: 10c0/f5635c1a02964d6ad36231acd1e0eda5bd0a47306939721bdc1f0c2258d989c3bcee1b5b77c5addb036d7846ec5c87fec72059e77f6b0d68815f079ef5d7d960 + checksum: 10c0/2ee80e77eee94a3bfd897a1ef6920174f983c4812938c4feb86ed5067f8d0144403e779e188b42354e97fe9b9eb53ff4034beb99e1b277934d652bb34701f7a9 + languageName: node + linkType: hard + +"@react-native-community/cli-clean@npm:20.1.1": + version: 20.1.1 + resolution: "@react-native-community/cli-clean@npm:20.1.1" + dependencies: + "@react-native-community/cli-tools": "npm:20.1.1" + execa: "npm:^5.0.0" + fast-glob: "npm:^3.3.2" + picocolors: "npm:^1.1.1" + checksum: 10c0/e9046bed08fa9a55c6219b0875b0ea76e8463db14b7bb3b5a001af36f3351abeb0707c4b56ee772d595153cd9541b62c368f27ab4ca949101cc1df0ec603a06c + languageName: node + linkType: hard + +"@react-native-community/cli-config-android@npm:17.0.0": + version: 17.0.0 + resolution: "@react-native-community/cli-config-android@npm:17.0.0" + dependencies: + "@react-native-community/cli-tools": "npm:17.0.0" + chalk: "npm:^4.1.2" + fast-glob: "npm:^3.3.2" + fast-xml-parser: "npm:^4.4.1" + checksum: 10c0/f2b3173da5c780094aa7c68c66965c50eaf36a2b50809be8e907089fe6b13bd4170db3925bda54673c3646d9bde0ab5e991cb1fea6038ea0ee50b1eda110a16e + languageName: node + linkType: hard + +"@react-native-community/cli-config-android@npm:20.1.1": + version: 20.1.1 + resolution: "@react-native-community/cli-config-android@npm:20.1.1" + dependencies: + "@react-native-community/cli-tools": "npm:20.1.1" + fast-glob: "npm:^3.3.2" + fast-xml-parser: "npm:^4.4.1" + picocolors: "npm:^1.1.1" + checksum: 10c0/022c64934a41753474f746b3f732211befce9c3f64fb1e15b72e2d34e2114bdef9bbd7639e2a8efb879b77112dc54f62acdec7569530628b35c9c04d980b5501 + languageName: node + linkType: hard + +"@react-native-community/cli-config-apple@npm:17.0.0": + version: 17.0.0 + resolution: "@react-native-community/cli-config-apple@npm:17.0.0" + dependencies: + "@react-native-community/cli-tools": "npm:17.0.0" + chalk: "npm:^4.1.2" + execa: "npm:^5.0.0" + fast-glob: "npm:^3.3.2" + checksum: 10c0/1c3ccca0a00fde8e10df77a321aac146873447f92144d527330bfa4bd30e505b5cecf9ef66fd60c8ae786a27b86be8e19f150e1b0ff0d3b16497511e8bb9ec5f + languageName: node + linkType: hard + +"@react-native-community/cli-config-apple@npm:20.1.1": + version: 20.1.1 + resolution: "@react-native-community/cli-config-apple@npm:20.1.1" + dependencies: + "@react-native-community/cli-tools": "npm:20.1.1" + execa: "npm:^5.0.0" + fast-glob: "npm:^3.3.2" + picocolors: "npm:^1.1.1" + checksum: 10c0/83260889993fd4676eb77eb5dac36017765f238754065a5fc885b5ad9dee1088c3b92db3e4ebfb18f2bd9b50f6151741abd5f31261b65cb855871af2d37ed5cf + languageName: node + linkType: hard + +"@react-native-community/cli-config@npm:13.6.9": + version: 13.6.9 + resolution: "@react-native-community/cli-config@npm:13.6.9" + dependencies: + "@react-native-community/cli-tools": "npm:13.6.9" + chalk: "npm:^4.1.2" + cosmiconfig: "npm:^5.1.0" + deepmerge: "npm:^4.3.0" + fast-glob: "npm:^3.3.2" + joi: "npm:^17.2.1" + checksum: 10c0/f5635c1a02964d6ad36231acd1e0eda5bd0a47306939721bdc1f0c2258d989c3bcee1b5b77c5addb036d7846ec5c87fec72059e77f6b0d68815f079ef5d7d960 + languageName: node + linkType: hard + +"@react-native-community/cli-config@npm:17.0.0": + version: 17.0.0 + resolution: "@react-native-community/cli-config@npm:17.0.0" + dependencies: + "@react-native-community/cli-tools": "npm:17.0.0" + chalk: "npm:^4.1.2" + cosmiconfig: "npm:^9.0.0" + deepmerge: "npm:^4.3.0" + fast-glob: "npm:^3.3.2" + joi: "npm:^17.2.1" + checksum: 10c0/64b8d780f7a764db92ac403fbea4f7d8a59376673e322af69baf85f771b5d19be5f612ce3a025da81ab66671811709ff3a1f0d8c55beceb365bbab2e8d96106b + languageName: node + linkType: hard + +"@react-native-community/cli-config@npm:20.1.1": + version: 20.1.1 + resolution: "@react-native-community/cli-config@npm:20.1.1" + dependencies: + "@react-native-community/cli-tools": "npm:20.1.1" + cosmiconfig: "npm:^9.0.0" + deepmerge: "npm:^4.3.0" + fast-glob: "npm:^3.3.2" + joi: "npm:^17.2.1" + picocolors: "npm:^1.1.1" + checksum: 10c0/4e67f137842d0f190890a069b50d7a33389a4bfc377a60d70433d96fddc2c015c22e6c828346c622f099aef891ec868c82ffe2989faabd8d42cf202471da2ae9 languageName: node linkType: hard @@ -7637,6 +8164,52 @@ __metadata: languageName: node linkType: hard +"@react-native-community/cli-doctor@npm:17.0.0": + version: 17.0.0 + resolution: "@react-native-community/cli-doctor@npm:17.0.0" + dependencies: + "@react-native-community/cli-config": "npm:17.0.0" + "@react-native-community/cli-platform-android": "npm:17.0.0" + "@react-native-community/cli-platform-apple": "npm:17.0.0" + "@react-native-community/cli-platform-ios": "npm:17.0.0" + "@react-native-community/cli-tools": "npm:17.0.0" + chalk: "npm:^4.1.2" + command-exists: "npm:^1.2.8" + deepmerge: "npm:^4.3.0" + envinfo: "npm:^7.13.0" + execa: "npm:^5.0.0" + node-stream-zip: "npm:^1.9.1" + ora: "npm:^5.4.1" + semver: "npm:^7.5.2" + wcwidth: "npm:^1.0.1" + yaml: "npm:^2.2.1" + checksum: 10c0/a7cb349053f45fa4b9c1825b370f4e3e50298137033d437d6c61b036933c53eb79b1a784c02d7013ac2f9a3ea5c9f294202dc1bf9c37a7f5762d504e12113efd + languageName: node + linkType: hard + +"@react-native-community/cli-doctor@npm:20.1.1": + version: 20.1.1 + resolution: "@react-native-community/cli-doctor@npm:20.1.1" + dependencies: + "@react-native-community/cli-config": "npm:20.1.1" + "@react-native-community/cli-platform-android": "npm:20.1.1" + "@react-native-community/cli-platform-apple": "npm:20.1.1" + "@react-native-community/cli-platform-ios": "npm:20.1.1" + "@react-native-community/cli-tools": "npm:20.1.1" + command-exists: "npm:^1.2.8" + deepmerge: "npm:^4.3.0" + envinfo: "npm:^7.13.0" + execa: "npm:^5.0.0" + node-stream-zip: "npm:^1.9.1" + ora: "npm:^5.4.1" + picocolors: "npm:^1.1.1" + semver: "npm:^7.5.2" + wcwidth: "npm:^1.0.1" + yaml: "npm:^2.2.1" + checksum: 10c0/2ecda431e0ca8eea284ee4ef157f495b2a9f6d60616af2384dc804676ef9d5c52a00f234e914ebfb60ef688f9e70be7cb150e5ce6ac1e9e128e8716e249acef0 + languageName: node + linkType: hard + "@react-native-community/cli-hermes@npm:13.6.9": version: 13.6.9 resolution: "@react-native-community/cli-hermes@npm:13.6.9" @@ -7663,6 +8236,32 @@ __metadata: languageName: node linkType: hard +"@react-native-community/cli-platform-android@npm:17.0.0": + version: 17.0.0 + resolution: "@react-native-community/cli-platform-android@npm:17.0.0" + dependencies: + "@react-native-community/cli-config-android": "npm:17.0.0" + "@react-native-community/cli-tools": "npm:17.0.0" + chalk: "npm:^4.1.2" + execa: "npm:^5.0.0" + logkitty: "npm:^0.7.1" + checksum: 10c0/c53533d6045d11d89bdd59fc6274147778edc0b425e50cf6f0ffc8144c8ec85dc78533f5f6dd4d6867c87ce62229e9bd598774ac5054ac2afdcb832986f37f88 + languageName: node + linkType: hard + +"@react-native-community/cli-platform-android@npm:20.1.1, @react-native-community/cli-platform-android@npm:^20.0.0": + version: 20.1.1 + resolution: "@react-native-community/cli-platform-android@npm:20.1.1" + dependencies: + "@react-native-community/cli-config-android": "npm:20.1.1" + "@react-native-community/cli-tools": "npm:20.1.1" + execa: "npm:^5.0.0" + logkitty: "npm:^0.7.1" + picocolors: "npm:^1.1.1" + checksum: 10c0/85e4d4f08f45bcbcc493b11231345711613265b37fd4d37531aacd7810bf449e5082aac00bbeb61259dc3ef91c7067d6caeaa29971bd3ed1e059cb89a1253c08 + languageName: node + linkType: hard + "@react-native-community/cli-platform-apple@npm:13.6.9": version: 13.6.9 resolution: "@react-native-community/cli-platform-apple@npm:13.6.9" @@ -7677,6 +8276,32 @@ __metadata: languageName: node linkType: hard +"@react-native-community/cli-platform-apple@npm:17.0.0": + version: 17.0.0 + resolution: "@react-native-community/cli-platform-apple@npm:17.0.0" + dependencies: + "@react-native-community/cli-config-apple": "npm:17.0.0" + "@react-native-community/cli-tools": "npm:17.0.0" + chalk: "npm:^4.1.2" + execa: "npm:^5.0.0" + fast-xml-parser: "npm:^4.4.1" + checksum: 10c0/1dae5bdd2c487f666791c339003619f06d9e79ca0e15734c69a0630131ab37fe41351de6ce0ace90fd5f6ddc19a41bf4a15d7c62a0d7f2b6e4486ecf69dbdf4e + languageName: node + linkType: hard + +"@react-native-community/cli-platform-apple@npm:20.1.1": + version: 20.1.1 + resolution: "@react-native-community/cli-platform-apple@npm:20.1.1" + dependencies: + "@react-native-community/cli-config-apple": "npm:20.1.1" + "@react-native-community/cli-tools": "npm:20.1.1" + execa: "npm:^5.0.0" + fast-xml-parser: "npm:^4.4.1" + picocolors: "npm:^1.1.1" + checksum: 10c0/e1998660cc2fe5856ecbcf096d826fa3f64440d9043532bd85d66a414bda44f944035b28a50d6fba0060628caffb9b42c61a04bbc2c51ef1d5b08b8ee74bfeac + languageName: node + linkType: hard + "@react-native-community/cli-platform-ios@npm:13.6.9, @react-native-community/cli-platform-ios@npm:^13.6.4": version: 13.6.9 resolution: "@react-native-community/cli-platform-ios@npm:13.6.9" @@ -7686,6 +8311,24 @@ __metadata: languageName: node linkType: hard +"@react-native-community/cli-platform-ios@npm:17.0.0": + version: 17.0.0 + resolution: "@react-native-community/cli-platform-ios@npm:17.0.0" + dependencies: + "@react-native-community/cli-platform-apple": "npm:17.0.0" + checksum: 10c0/3f6e3fadcd3de989682855b5d82a41a3cb180af46bdb6961174da05a6b1e813568f04c946939bcf9ce83ef5d8ac8ae93f156bda7813aae6f11c4929754a02c3d + languageName: node + linkType: hard + +"@react-native-community/cli-platform-ios@npm:20.1.1, @react-native-community/cli-platform-ios@npm:^20.0.0": + version: 20.1.1 + resolution: "@react-native-community/cli-platform-ios@npm:20.1.1" + dependencies: + "@react-native-community/cli-platform-apple": "npm:20.1.1" + checksum: 10c0/32eccba62a095ca3e585b6d8c936f23ace31846861d5e19bb9d238572ef66f5dcb0a1dba4eded319129b56e2633bf9e9bb08d552eb3190262eb3cd4c78bacac6 + languageName: node + linkType: hard + "@react-native-community/cli-server-api@npm:13.6.9": version: 13.6.9 resolution: "@react-native-community/cli-server-api@npm:13.6.9" @@ -7703,6 +8346,43 @@ __metadata: languageName: node linkType: hard +"@react-native-community/cli-server-api@npm:17.0.0": + version: 17.0.0 + resolution: "@react-native-community/cli-server-api@npm:17.0.0" + dependencies: + "@react-native-community/cli-tools": "npm:17.0.0" + body-parser: "npm:^1.20.3" + compression: "npm:^1.7.1" + connect: "npm:^3.6.5" + errorhandler: "npm:^1.5.1" + nocache: "npm:^3.0.1" + open: "npm:^6.2.0" + pretty-format: "npm:^26.6.2" + serve-static: "npm:^1.13.1" + ws: "npm:^6.2.3" + checksum: 10c0/fbb38ca45628e8353f52396991e3a94acfca964c9607268f7ed68f7b44a6d8074ae7fb115d24d2630935a20ddf3595fdf7edd097a004a915f96455231107ced1 + languageName: node + linkType: hard + +"@react-native-community/cli-server-api@npm:20.1.1": + version: 20.1.1 + resolution: "@react-native-community/cli-server-api@npm:20.1.1" + dependencies: + "@react-native-community/cli-tools": "npm:20.1.1" + body-parser: "npm:^1.20.3" + compression: "npm:^1.7.1" + connect: "npm:^3.6.5" + errorhandler: "npm:^1.5.1" + nocache: "npm:^3.0.1" + open: "npm:^6.2.0" + pretty-format: "npm:^29.7.0" + serve-static: "npm:^1.13.1" + strict-url-sanitise: "npm:0.0.1" + ws: "npm:^6.2.3" + checksum: 10c0/87d0861b83a3f477477bb948d6147e76025f1c20263b448ff2a11801975841252066c56491a83c9bc60c27d0bc091fe84c445960951d912cdfdb31459e8be5a3 + languageName: node + linkType: hard + "@react-native-community/cli-tools@npm:13.6.9": version: 13.6.9 resolution: "@react-native-community/cli-tools@npm:13.6.9" @@ -7722,6 +8402,42 @@ __metadata: languageName: node linkType: hard +"@react-native-community/cli-tools@npm:17.0.0": + version: 17.0.0 + resolution: "@react-native-community/cli-tools@npm:17.0.0" + dependencies: + "@vscode/sudo-prompt": "npm:^9.0.0" + appdirsjs: "npm:^1.2.4" + chalk: "npm:^4.1.2" + execa: "npm:^5.0.0" + find-up: "npm:^5.0.0" + launch-editor: "npm:^2.9.1" + mime: "npm:^2.4.1" + ora: "npm:^5.4.1" + prompts: "npm:^2.4.2" + semver: "npm:^7.5.2" + checksum: 10c0/a01dbc9d4653ae87b06dbc7b18890d785a68319216c85f661d3c637d6684d8b685455146304dc26773ea5997d681426f22fcad3af4b2115e54f35e389daab469 + languageName: node + linkType: hard + +"@react-native-community/cli-tools@npm:20.1.1": + version: 20.1.1 + resolution: "@react-native-community/cli-tools@npm:20.1.1" + dependencies: + "@vscode/sudo-prompt": "npm:^9.0.0" + appdirsjs: "npm:^1.2.4" + execa: "npm:^5.0.0" + find-up: "npm:^5.0.0" + launch-editor: "npm:^2.9.1" + mime: "npm:^2.4.1" + ora: "npm:^5.4.1" + picocolors: "npm:^1.1.1" + prompts: "npm:^2.4.2" + semver: "npm:^7.5.2" + checksum: 10c0/684cfee633effa97b584d40e3da704cb4b65a1f44e3a3538fbe624252f9d46266d12486c3be5456b8ec30d43dbb4877c84ac5cbff7c57e465af45381d58e6046 + languageName: node + linkType: hard + "@react-native-community/cli-types@npm:13.6.9": version: 13.6.9 resolution: "@react-native-community/cli-types@npm:13.6.9" @@ -7731,6 +8447,24 @@ __metadata: languageName: node linkType: hard +"@react-native-community/cli-types@npm:17.0.0": + version: 17.0.0 + resolution: "@react-native-community/cli-types@npm:17.0.0" + dependencies: + joi: "npm:^17.2.1" + checksum: 10c0/4d9919e5d6b7e2e205f1b561bb8c0fc0050ce538a05711ac8875893c12afcdc47a5802097b3b027f1af489ddb63f0cfd19ab8f8a6e626face7837b54766f2496 + languageName: node + linkType: hard + +"@react-native-community/cli-types@npm:20.1.1": + version: 20.1.1 + resolution: "@react-native-community/cli-types@npm:20.1.1" + dependencies: + joi: "npm:^17.2.1" + checksum: 10c0/f936e3163ac67b63c4dc3c9926b5d8a207d8ddecc554e7322e1f432b7590b5693ed501290c2a876e61fd274c5757640b12b1d54ff1c982785892de1e9c86b46a + languageName: node + linkType: hard + "@react-native-community/cli@npm:13.6.9, @react-native-community/cli@npm:^13.6.4": version: 13.6.9 resolution: "@react-native-community/cli@npm:13.6.9" @@ -7758,6 +8492,56 @@ __metadata: languageName: node linkType: hard +"@react-native-community/cli@npm:17.0.0": + version: 17.0.0 + resolution: "@react-native-community/cli@npm:17.0.0" + dependencies: + "@react-native-community/cli-clean": "npm:17.0.0" + "@react-native-community/cli-config": "npm:17.0.0" + "@react-native-community/cli-doctor": "npm:17.0.0" + "@react-native-community/cli-server-api": "npm:17.0.0" + "@react-native-community/cli-tools": "npm:17.0.0" + "@react-native-community/cli-types": "npm:17.0.0" + chalk: "npm:^4.1.2" + commander: "npm:^9.4.1" + deepmerge: "npm:^4.3.0" + execa: "npm:^5.0.0" + find-up: "npm:^5.0.0" + fs-extra: "npm:^8.1.0" + graceful-fs: "npm:^4.1.3" + prompts: "npm:^2.4.2" + semver: "npm:^7.5.2" + bin: + rnc-cli: build/bin.js + checksum: 10c0/946f57696fa0c68fe1c4472ee53b9e83d1cc6fd3b84a40ee1673a6ae2474bdbd0ef4c823137baa2201d9fc0b58e6934b1cdd93477527e53f97567c7c657dc365 + languageName: node + linkType: hard + +"@react-native-community/cli@npm:^20.0.0": + version: 20.1.1 + resolution: "@react-native-community/cli@npm:20.1.1" + dependencies: + "@react-native-community/cli-clean": "npm:20.1.1" + "@react-native-community/cli-config": "npm:20.1.1" + "@react-native-community/cli-doctor": "npm:20.1.1" + "@react-native-community/cli-server-api": "npm:20.1.1" + "@react-native-community/cli-tools": "npm:20.1.1" + "@react-native-community/cli-types": "npm:20.1.1" + commander: "npm:^9.4.1" + deepmerge: "npm:^4.3.0" + execa: "npm:^5.0.0" + find-up: "npm:^5.0.0" + fs-extra: "npm:^8.1.0" + graceful-fs: "npm:^4.1.3" + picocolors: "npm:^1.1.1" + prompts: "npm:^2.4.2" + semver: "npm:^7.5.2" + bin: + rnc-cli: build/bin.js + checksum: 10c0/40c2b32ffa1e09879b9233d07a88068b076b3cd1913ef1c41a0199e95bd4d6601b3c55b8bbc3dd6d44a8f6b8f0ade811e1e26e6a892e9debb34e946fe4a8e3e6 + languageName: node + linkType: hard + "@react-native-community/slider@npm:^4.5.7": version: 4.5.7 resolution: "@react-native-community/slider@npm:4.5.7" @@ -7937,6 +8721,13 @@ __metadata: languageName: node linkType: hard +"@react-native/assets-registry@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/assets-registry@npm:0.81.5" + checksum: 10c0/88edc316ccccc9e86f03cb591696b02cac541808d89a7480450fd529b1a7363373411018720b492352805f867003f6a71ac1e6363d7b797d3502ea89bcbb2a47 + languageName: node + linkType: hard + "@react-native/assets@npm:1.0.0": version: 1.0.0 resolution: "@react-native/assets@npm:1.0.0" @@ -7953,6 +8744,16 @@ __metadata: languageName: node linkType: hard +"@react-native/babel-plugin-codegen@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/babel-plugin-codegen@npm:0.81.5" + dependencies: + "@babel/traverse": "npm:^7.25.3" + "@react-native/codegen": "npm:0.81.5" + checksum: 10c0/54971e723480bf5e169e1075a9525274e024c94c4286953c699ddb5f82e6229895147f19723b9f1319b55e0eaaa10389a19f349b6c0ac8451d72941a7d9f448b + languageName: node + linkType: hard + "@react-native/babel-preset@npm:0.74.89, @react-native/babel-preset@npm:^0.74.0": version: 0.74.89 resolution: "@react-native/babel-preset@npm:0.74.89" @@ -8006,6 +8807,61 @@ __metadata: languageName: node linkType: hard +"@react-native/babel-preset@npm:0.81.5, @react-native/babel-preset@npm:^0.81.0": + version: 0.81.5 + resolution: "@react-native/babel-preset@npm:0.81.5" + dependencies: + "@babel/core": "npm:^7.25.2" + "@babel/plugin-proposal-export-default-from": "npm:^7.24.7" + "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" + "@babel/plugin-syntax-export-default-from": "npm:^7.24.7" + "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" + "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" + "@babel/plugin-transform-arrow-functions": "npm:^7.24.7" + "@babel/plugin-transform-async-generator-functions": "npm:^7.25.4" + "@babel/plugin-transform-async-to-generator": "npm:^7.24.7" + "@babel/plugin-transform-block-scoping": "npm:^7.25.0" + "@babel/plugin-transform-class-properties": "npm:^7.25.4" + "@babel/plugin-transform-classes": "npm:^7.25.4" + "@babel/plugin-transform-computed-properties": "npm:^7.24.7" + "@babel/plugin-transform-destructuring": "npm:^7.24.8" + "@babel/plugin-transform-flow-strip-types": "npm:^7.25.2" + "@babel/plugin-transform-for-of": "npm:^7.24.7" + "@babel/plugin-transform-function-name": "npm:^7.25.1" + "@babel/plugin-transform-literals": "npm:^7.25.2" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.7" + "@babel/plugin-transform-modules-commonjs": "npm:^7.24.8" + "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.7" + "@babel/plugin-transform-numeric-separator": "npm:^7.24.7" + "@babel/plugin-transform-object-rest-spread": "npm:^7.24.7" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.7" + "@babel/plugin-transform-optional-chaining": "npm:^7.24.8" + "@babel/plugin-transform-parameters": "npm:^7.24.7" + "@babel/plugin-transform-private-methods": "npm:^7.24.7" + "@babel/plugin-transform-private-property-in-object": "npm:^7.24.7" + "@babel/plugin-transform-react-display-name": "npm:^7.24.7" + "@babel/plugin-transform-react-jsx": "npm:^7.25.2" + "@babel/plugin-transform-react-jsx-self": "npm:^7.24.7" + "@babel/plugin-transform-react-jsx-source": "npm:^7.24.7" + "@babel/plugin-transform-regenerator": "npm:^7.24.7" + "@babel/plugin-transform-runtime": "npm:^7.24.7" + "@babel/plugin-transform-shorthand-properties": "npm:^7.24.7" + "@babel/plugin-transform-spread": "npm:^7.24.7" + "@babel/plugin-transform-sticky-regex": "npm:^7.24.7" + "@babel/plugin-transform-typescript": "npm:^7.25.2" + "@babel/plugin-transform-unicode-regex": "npm:^7.24.7" + "@babel/template": "npm:^7.25.0" + "@react-native/babel-plugin-codegen": "npm:0.81.5" + babel-plugin-syntax-hermes-parser: "npm:0.29.1" + babel-plugin-transform-flow-enums: "npm:^0.0.2" + react-refresh: "npm:^0.14.0" + peerDependencies: + "@babel/core": "*" + checksum: 10c0/f3146982c329f7fa7554195e6f8689275cb737856da192a934e7b509f0a5fe07c77c24993801d44914c5c6405799e9b500d227bd1deddf19947c28af6e14ad91 + languageName: node + linkType: hard + "@react-native/codegen@npm:0.74.89": version: 0.74.89 resolution: "@react-native/codegen@npm:0.74.89" @@ -8024,6 +8880,23 @@ __metadata: languageName: node linkType: hard +"@react-native/codegen@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/codegen@npm:0.81.5" + dependencies: + "@babel/core": "npm:^7.25.2" + "@babel/parser": "npm:^7.25.3" + glob: "npm:^7.1.1" + hermes-parser: "npm:0.29.1" + invariant: "npm:^2.2.4" + nullthrows: "npm:^1.1.1" + yargs: "npm:^17.6.2" + peerDependencies: + "@babel/core": "*" + checksum: 10c0/047a29fadb51f6c58ff6fbad8be3ffc395c1492a869befacd74e11df5a9fa164b15b135824404e34af409c88f722874f9311966ebe4de3dcf10846abfcce0574 + languageName: node + linkType: hard + "@react-native/community-cli-plugin@npm:0.74.89": version: 0.74.89 resolution: "@react-native/community-cli-plugin@npm:0.74.89" @@ -8044,6 +8917,29 @@ __metadata: languageName: node linkType: hard +"@react-native/community-cli-plugin@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/community-cli-plugin@npm:0.81.5" + dependencies: + "@react-native/dev-middleware": "npm:0.81.5" + debug: "npm:^4.4.0" + invariant: "npm:^2.2.4" + metro: "npm:^0.83.1" + metro-config: "npm:^0.83.1" + metro-core: "npm:^0.83.1" + semver: "npm:^7.1.3" + peerDependencies: + "@react-native-community/cli": "*" + "@react-native/metro-config": "*" + peerDependenciesMeta: + "@react-native-community/cli": + optional: true + "@react-native/metro-config": + optional: true + checksum: 10c0/754afa13dbaae2892864439878068a5858c88474c5fc041d0d085ac7b2cd1a4b04993d07c6e274790855ed06bba8b08bf0081fb76ab2b08d1aa8d665e58ddaa3 + languageName: node + linkType: hard + "@react-native/debugger-frontend@npm:0.74.89": version: 0.74.89 resolution: "@react-native/debugger-frontend@npm:0.74.89" @@ -8051,6 +8947,13 @@ __metadata: languageName: node linkType: hard +"@react-native/debugger-frontend@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/debugger-frontend@npm:0.81.5" + checksum: 10c0/6c8769526373314956ec53584b49d3ac94aace4232ba77cfdd96edaf346be8a648e2d877c719e7edaa4c1dcd6a09376012f35b25ca6498679b115815cc6940c3 + languageName: node + linkType: hard + "@react-native/dev-middleware@npm:0.74.89": version: 0.74.89 resolution: "@react-native/dev-middleware@npm:0.74.89" @@ -8072,6 +8975,25 @@ __metadata: languageName: node linkType: hard +"@react-native/dev-middleware@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/dev-middleware@npm:0.81.5" + dependencies: + "@isaacs/ttlcache": "npm:^1.4.1" + "@react-native/debugger-frontend": "npm:0.81.5" + chrome-launcher: "npm:^0.15.2" + chromium-edge-launcher: "npm:^0.2.0" + connect: "npm:^3.6.5" + debug: "npm:^4.4.0" + invariant: "npm:^2.2.4" + nullthrows: "npm:^1.1.1" + open: "npm:^7.0.3" + serve-static: "npm:^1.16.2" + ws: "npm:^6.2.3" + checksum: 10c0/d057b320940626d41db7f02ac249b9fdba2569ea3167864986bfe61028c4f890cefe24a5b8d4cd1b33c8c33ab547aa361d13a6cdaf991475302eb83a4ab3372a + languageName: node + linkType: hard + "@react-native/eslint-plugin@npm:^0.76.0": version: 0.76.9 resolution: "@react-native/eslint-plugin@npm:0.76.9" @@ -8086,6 +9008,13 @@ __metadata: languageName: node linkType: hard +"@react-native/gradle-plugin@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/gradle-plugin@npm:0.81.5" + checksum: 10c0/0acb06543b4a42daa49c437b608170d25efd3214cf01706b4138a7fb52604f590a680c7d4a4574b43983af80406f781bd3ef692208b4f237dc9902aa14037f6b + languageName: node + linkType: hard + "@react-native/js-polyfills@npm:0.74.89": version: 0.74.89 resolution: "@react-native/js-polyfills@npm:0.74.89" @@ -8093,6 +9022,13 @@ __metadata: languageName: node linkType: hard +"@react-native/js-polyfills@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/js-polyfills@npm:0.81.5" + checksum: 10c0/337d0f263a94f9f38a39efba5081481fe7ff0b6499f77708d97aa3d18cad527adec7f94a21f9af62ec4d78448a39f545223b52cca8c07c10a52b0468b456dd46 + languageName: node + linkType: hard + "@react-native/metro-babel-transformer@npm:0.74.89, @react-native/metro-babel-transformer@npm:^0.74.0": version: 0.74.89 resolution: "@react-native/metro-babel-transformer@npm:0.74.89" @@ -8107,6 +9043,20 @@ __metadata: languageName: node linkType: hard +"@react-native/metro-babel-transformer@npm:0.81.5, @react-native/metro-babel-transformer@npm:^0.81.0": + version: 0.81.5 + resolution: "@react-native/metro-babel-transformer@npm:0.81.5" + dependencies: + "@babel/core": "npm:^7.25.2" + "@react-native/babel-preset": "npm:0.81.5" + hermes-parser: "npm:0.29.1" + nullthrows: "npm:^1.1.1" + peerDependencies: + "@babel/core": "*" + checksum: 10c0/4abedae4e62e6426174862bb07319405ccf3c1a19d84f5af5b2d367bf7f7a65f9cd8da1504a5f0d952ca085c1c990fff401374a26f6276da9e0fdbabc8c18d1d + languageName: node + linkType: hard + "@react-native/metro-config@npm:^0.74.0": version: 0.74.89 resolution: "@react-native/metro-config@npm:0.74.89" @@ -8119,6 +9069,18 @@ __metadata: languageName: node linkType: hard +"@react-native/metro-config@npm:^0.81.0": + version: 0.81.5 + resolution: "@react-native/metro-config@npm:0.81.5" + dependencies: + "@react-native/js-polyfills": "npm:0.81.5" + "@react-native/metro-babel-transformer": "npm:0.81.5" + metro-config: "npm:^0.83.1" + metro-runtime: "npm:^0.83.1" + checksum: 10c0/5df438776ae7d75556178c3eda0d8632059345adfcee4f8f7e90b3159d9bcad67fc2ce78e8805a4720e9b463e75625bc2c0c6f07d9b0cdb2f7b93d870c217a45 + languageName: node + linkType: hard + "@react-native/normalize-colors@npm:0.74.89": version: 0.74.89 resolution: "@react-native/normalize-colors@npm:0.74.89" @@ -8126,6 +9088,13 @@ __metadata: languageName: node linkType: hard +"@react-native/normalize-colors@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/normalize-colors@npm:0.81.5" + checksum: 10c0/827b120eedd0bf90ab3113e5a74900d15f73bfd826451d493f8047f78824894c516ccaf85bb02fcbe5f11b9f8852c1266593f1999e46a5752ff34b0a2db89a97 + languageName: node + linkType: hard + "@react-native/virtualized-lists@npm:0.74.89": version: 0.74.89 resolution: "@react-native/virtualized-lists@npm:0.74.89" @@ -8143,7 +9112,24 @@ __metadata: languageName: node linkType: hard -"@rnx-kit/align-deps@npm:^3.1.0, @rnx-kit/align-deps@npm:^3.4.0": +"@react-native/virtualized-lists@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/virtualized-lists@npm:0.81.5" + dependencies: + invariant: "npm:^2.2.4" + nullthrows: "npm:^1.1.1" + peerDependencies: + "@types/react": ^19.1.0 + react: "*" + react-native: "*" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/2f38e73d850e4c7f8bf9e6598ebdf97c524d6ddfa720044798e827aaa613ff6dc47dbdb8e440ce370f92f7ff932f0ac3204328287e79d7e3b8ac8db5651d0b4d + languageName: node + linkType: hard + +"@rnx-kit/align-deps@npm:^3.1.0, @rnx-kit/align-deps@npm:^3.3.3, @rnx-kit/align-deps@npm:^3.4.0": version: 3.4.0 resolution: "@rnx-kit/align-deps@npm:3.4.0" bin: @@ -8221,6 +9207,43 @@ __metadata: languageName: node linkType: hard +"@rnx-kit/cli@npm:^1.0.0": + version: 1.0.0 + resolution: "@rnx-kit/cli@npm:1.0.0" + dependencies: + "@rnx-kit/align-deps": "npm:^3.3.3" + "@rnx-kit/config": "npm:^0.7.0" + "@rnx-kit/console": "npm:^2.0.0" + "@rnx-kit/metro-plugin-cyclic-dependencies-detector": "npm:^2.0.0" + "@rnx-kit/metro-plugin-duplicates-checker": "npm:^3.0.0" + "@rnx-kit/metro-plugin-typescript": "npm:^0.5.3" + "@rnx-kit/metro-serializer": "npm:^2.0.0" + "@rnx-kit/metro-serializer-esbuild": "npm:^0.3.0" + "@rnx-kit/metro-service": "npm:^4.1.3" + "@rnx-kit/third-party-notices": "npm:^2.0.0" + "@rnx-kit/tools-android": "npm:^0.2.2" + "@rnx-kit/tools-apple": "npm:^0.2.2" + "@rnx-kit/tools-filesystem": "npm:^0.1.0" + "@rnx-kit/tools-language": "npm:^3.0.1" + "@rnx-kit/tools-node": "npm:^3.0.3" + "@rnx-kit/tools-react-native": "npm:^2.3.2" + commander: "npm:^11.1.0" + ora: "npm:^5.4.1" + qrcode: "npm:^1.5.0" + peerDependencies: + jest: ">=26.0" + react-native: ">=0.64" + peerDependenciesMeta: + jest: + optional: true + react-native: + optional: true + bin: + rnx-cli: bin/rnx-cli.cjs + checksum: 10c0/02573ddb0ba57cfe4ab70f4789f7e23583c8ca36ef5193a6cfab199d90f5250027b08dcadaeaad4465af3ce27f6a03ccaf4de3e276a898c7996846b934c133dd + languageName: node + linkType: hard + "@rnx-kit/config@npm:^0.7.0, @rnx-kit/config@npm:^0.7.4": version: 0.7.4 resolution: "@rnx-kit/config@npm:0.7.4" @@ -8305,6 +9328,24 @@ __metadata: languageName: node linkType: hard +"@rnx-kit/metro-config@npm:^2.2.3": + version: 2.2.3 + resolution: "@rnx-kit/metro-config@npm:2.2.3" + dependencies: + "@rnx-kit/tools-node": "npm:^3.0.0" + "@rnx-kit/tools-react-native": "npm:^2.3.1" + "@rnx-kit/tools-workspaces": "npm:^0.2.0" + peerDependencies: + "@react-native/metro-config": "*" + react: "*" + react-native: "*" + peerDependenciesMeta: + "@react-native/metro-config": + optional: true + checksum: 10c0/82e2bfaa0af95764de4ed9aaede77179f99c33ca675aba68129bc7d619f201b3eadd3ffd39844a6f33cbbb619460e403f0488da4b40f11eaadd5538fd1c3707c + languageName: node + linkType: hard + "@rnx-kit/metro-plugin-cyclic-dependencies-detector@npm:^2.0.0": version: 2.0.0 resolution: "@rnx-kit/metro-plugin-cyclic-dependencies-detector@npm:2.0.0" @@ -8327,17 +9368,48 @@ __metadata: languageName: node linkType: hard -"@rnx-kit/metro-plugin-typescript@npm:^0.5.0": - version: 0.5.1 - resolution: "@rnx-kit/metro-plugin-typescript@npm:0.5.1" +"@rnx-kit/metro-plugin-typescript@npm:^0.5.0": + version: 0.5.1 + resolution: "@rnx-kit/metro-plugin-typescript@npm:0.5.1" + dependencies: + "@rnx-kit/config": "npm:^0.7.0" + "@rnx-kit/console": "npm:^2.0.0" + "@rnx-kit/tools-node": "npm:^3.0.0" + "@rnx-kit/tools-react-native": "npm:^2.0.0" + "@rnx-kit/typescript-service": "npm:^2.0.0" + typescript: "npm:>=4.7.0" + checksum: 10c0/ef18ad41815115a47428e5cbbbfbf5fe2ef52ac8fef7c8ccf3a48706ec51b8735a91d7c924ef1314fc1ea7f8eb98f76adaf1907940c5c4be9a1ccc4c3f5dbdd0 + languageName: node + linkType: hard + +"@rnx-kit/metro-plugin-typescript@npm:^0.5.3": + version: 0.5.3 + resolution: "@rnx-kit/metro-plugin-typescript@npm:0.5.3" + dependencies: + "@rnx-kit/config": "npm:^0.7.0" + "@rnx-kit/console": "npm:^2.0.0" + "@rnx-kit/tools-node": "npm:^3.0.3" + "@rnx-kit/tools-react-native": "npm:^2.3.2" + "@rnx-kit/typescript-service": "npm:^2.0.2" + typescript: "npm:>=4.7.0" + checksum: 10c0/90925be96ec23acb35ac42e2a3460d7bda79aa64c907f67f016075ec0e44b3ecd9decc7741f673dc41af19d5087d6b271efcf453d9e571bc99be64678c3e5c49 + languageName: node + linkType: hard + +"@rnx-kit/metro-resolver-symlinks@npm:^0.2.11": + version: 0.2.11 + resolution: "@rnx-kit/metro-resolver-symlinks@npm:0.2.11" dependencies: - "@rnx-kit/config": "npm:^0.7.0" "@rnx-kit/console": "npm:^2.0.0" - "@rnx-kit/tools-node": "npm:^3.0.0" - "@rnx-kit/tools-react-native": "npm:^2.0.0" - "@rnx-kit/typescript-service": "npm:^2.0.0" - typescript: "npm:>=4.7.0" - checksum: 10c0/ef18ad41815115a47428e5cbbbfbf5fe2ef52ac8fef7c8ccf3a48706ec51b8735a91d7c924ef1314fc1ea7f8eb98f76adaf1907940c5c4be9a1ccc4c3f5dbdd0 + "@rnx-kit/tools-node": "npm:^3.0.3" + "@rnx-kit/tools-react-native": "npm:^2.3.2" + enhanced-resolve: "npm:^5.8.3" + peerDependencies: + oxc-resolver: ^11.0.0 + peerDependenciesMeta: + oxc-resolver: + optional: true + checksum: 10c0/57d737b96ede2d5b333e4768b360888b67acffa3e377432208ec7f9aebfbfb56f41066531306b0106c8c7ad71f2b889aa0a3ab20aadefb4757e0d1cacc5a8d73 languageName: node linkType: hard @@ -8372,6 +9444,19 @@ __metadata: languageName: node linkType: hard +"@rnx-kit/metro-serializer-esbuild@npm:^0.3.0": + version: 0.3.0 + resolution: "@rnx-kit/metro-serializer-esbuild@npm:0.3.0" + dependencies: + "@rnx-kit/console": "npm:^2.0.0" + "@rnx-kit/tools-node": "npm:^3.0.3" + "@rnx-kit/tools-react-native": "npm:^2.3.2" + esbuild: "npm:^0.27.1" + esbuild-plugin-lodash: "npm:^1.2.0" + checksum: 10c0/25b9720cf6b2ec1387c2a773dad1ffc7d5547eace59dbaacdff008c5c03eb94bb4d9af7b762c60826e5c3104f48042a2c6367774bf5469b5006c686846dde895 + languageName: node + linkType: hard + "@rnx-kit/metro-serializer@npm:^2.0.0": version: 2.0.0 resolution: "@rnx-kit/metro-serializer@npm:2.0.0" @@ -8405,6 +9490,29 @@ __metadata: languageName: node linkType: hard +"@rnx-kit/metro-service@npm:^4.1.3": + version: 4.1.4 + resolution: "@rnx-kit/metro-service@npm:4.1.4" + dependencies: + "@rnx-kit/console": "npm:^2.0.0" + "@rnx-kit/tools-node": "npm:^3.0.3" + "@rnx-kit/tools-react-native": "npm:^2.3.2" + node-fetch: "npm:^2.6.7" + peerDependencies: + "@office-iss/react-native-win32": "*" + "@react-native/metro-config": "*" + metro-react-native-babel-transformer: ">=0.66.1" + peerDependenciesMeta: + "@office-iss/react-native-win32": + optional: true + "@react-native/metro-config": + optional: true + metro-react-native-babel-transformer: + optional: true + checksum: 10c0/61ba3d1552740b4ca4a4a7f4b5e1d68c45759229d280f604cb383a275f7ffe3b40a9ed04538205ae6b78679e3d4bfcf2a3e6e30ca463e65a9c65451ef73a5542 + languageName: node + linkType: hard + "@rnx-kit/react-native-host@npm:^0.5.0": version: 0.5.15 resolution: "@rnx-kit/react-native-host@npm:0.5.15" @@ -8414,6 +9522,15 @@ __metadata: languageName: node linkType: hard +"@rnx-kit/react-native-host@npm:^0.5.11": + version: 0.5.16 + resolution: "@rnx-kit/react-native-host@npm:0.5.16" + peerDependencies: + react-native: ">=0.66" + checksum: 10c0/346aa558a9fbe1e36c544ddcd2e85b1f111dec1250700e3a2326d3c171f33fed1e7f4f7291bbc6bc0dcbb81c648261cb872ff334d7d970684ae05d92e84ba0d3 + languageName: node + linkType: hard + "@rnx-kit/reporter@npm:^0.1.0": version: 0.1.0 resolution: "@rnx-kit/reporter@npm:0.1.0" @@ -8446,6 +9563,15 @@ __metadata: languageName: node linkType: hard +"@rnx-kit/tools-android@npm:^0.2.2": + version: 0.2.2 + resolution: "@rnx-kit/tools-android@npm:0.2.2" + dependencies: + "@rnx-kit/tools-shell": "npm:^0.2.2" + checksum: 10c0/ae44c212ab392f1bce2d0299104112f4e73a2d244f0640f9dd4873d82b933fc49b09308c6b534354556ee5abb43d4870534a017f93daa6a00d03ccec331d4ff0 + languageName: node + linkType: hard + "@rnx-kit/tools-apple@npm:^0.2.1": version: 0.2.1 resolution: "@rnx-kit/tools-apple@npm:0.2.1" @@ -8456,6 +9582,16 @@ __metadata: languageName: node linkType: hard +"@rnx-kit/tools-apple@npm:^0.2.2": + version: 0.2.2 + resolution: "@rnx-kit/tools-apple@npm:0.2.2" + dependencies: + "@rnx-kit/tools-shell": "npm:^0.2.2" + fast-xml-parser: "npm:^4.0.0" + checksum: 10c0/fee9b00ed8483d2a19ff3bfe7d150bab9a1c028f75941ca4197b033fdd3a50a2ebbe501bd1886dcb18e633508e67f4ca071ed34fdeeef573783ca8ffabeccc07 + languageName: node + linkType: hard + "@rnx-kit/tools-filesystem@npm:^0.1.0": version: 0.1.2 resolution: "@rnx-kit/tools-filesystem@npm:0.1.2" @@ -8470,6 +9606,13 @@ __metadata: languageName: node linkType: hard +"@rnx-kit/tools-language@npm:^3.0.1": + version: 3.0.1 + resolution: "@rnx-kit/tools-language@npm:3.0.1" + checksum: 10c0/66f5fc3516e5421b9c884bb6919a34d90d8c519947deba3d10c8b1a8f22dd8008aeda5e08b3fbf561047afb8fa37b656ece0c2376c27ea269206fb12f56d555c + languageName: node + linkType: hard + "@rnx-kit/tools-node@npm:^3.0.0, @rnx-kit/tools-node@npm:^3.0.1, @rnx-kit/tools-node@npm:^3.0.2, @rnx-kit/tools-node@npm:^3.0.3": version: 3.0.3 resolution: "@rnx-kit/tools-node@npm:3.0.3" @@ -8487,7 +9630,7 @@ __metadata: languageName: node linkType: hard -"@rnx-kit/tools-react-native@npm:^2.0.0, @rnx-kit/tools-react-native@npm:^2.0.3, @rnx-kit/tools-react-native@npm:^2.2.0, @rnx-kit/tools-react-native@npm:^2.3.0, @rnx-kit/tools-react-native@npm:^2.3.2": +"@rnx-kit/tools-react-native@npm:^2.0.0, @rnx-kit/tools-react-native@npm:^2.0.3, @rnx-kit/tools-react-native@npm:^2.1.0, @rnx-kit/tools-react-native@npm:^2.2.0, @rnx-kit/tools-react-native@npm:^2.3.0, @rnx-kit/tools-react-native@npm:^2.3.1, @rnx-kit/tools-react-native@npm:^2.3.2": version: 2.3.2 resolution: "@rnx-kit/tools-react-native@npm:2.3.2" dependencies: @@ -8503,6 +9646,13 @@ __metadata: languageName: node linkType: hard +"@rnx-kit/tools-shell@npm:^0.2.2": + version: 0.2.2 + resolution: "@rnx-kit/tools-shell@npm:0.2.2" + checksum: 10c0/bfaf427b73cb1e2ec5958ead91f1e48c893a2f88286139f428bd22f133097edc3227eb7faf88a34c2fc04dbfe19d1ece196580fa287fc6103d981b8e2b86d2ba + languageName: node + linkType: hard + "@rnx-kit/tools-typescript@npm:^0.1.1": version: 0.1.1 resolution: "@rnx-kit/tools-typescript@npm:0.1.1" @@ -8550,6 +9700,17 @@ __metadata: languageName: node linkType: hard +"@rnx-kit/typescript-service@npm:^2.0.2": + version: 2.0.2 + resolution: "@rnx-kit/typescript-service@npm:2.0.2" + dependencies: + "@rnx-kit/tools-node": "npm:^3.0.0" + peerDependencies: + typescript: ">=4.0" + checksum: 10c0/253bdee64737a4f493dbfa56ab8264a24947d11b7ff46302b4ae12d36545af10d53278b5d8806979e5f949948c001b96ba146cef3c6c9a07bf749249426a7d82 + languageName: node + linkType: hard + "@rtsao/scc@npm:^1.1.0": version: 1.1.0 resolution: "@rtsao/scc@npm:1.1.0" @@ -9099,6 +10260,15 @@ __metadata: languageName: node linkType: hard +"@types/react-test-renderer@npm:^19.1.0": + version: 19.1.0 + resolution: "@types/react-test-renderer@npm:19.1.0" + dependencies: + "@types/react": "npm:*" + checksum: 10c0/799654e430df10aeaf267d71507fb64ec151359ead7e3774111bfd4abce7e0911dba461811195c06c22a6d17496ea92537d3185320ff4112fe29954cad1b9152 + languageName: node + linkType: hard + "@types/react@npm:^18.2.0": version: 18.3.20 resolution: "@types/react@npm:18.3.20" @@ -9432,8 +10602,8 @@ __metadata: react: "npm:18.2.0" react-native: "npm:^0.74.0" peerDependencies: - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 languageName: unknown linkType: soft @@ -9459,11 +10629,11 @@ __metadata: react-native-macos: "npm:^0.74.0" react-native-windows: "npm:^0.74.0" peerDependencies: - "@office-iss/react-native-win32": ^0.73.0 || ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + "@office-iss/react-native-win32": ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -9489,7 +10659,7 @@ __metadata: react: "npm:18.2.0" react-native: "npm:^0.74.0" peerDependencies: - react: 18.2.0 + react: 18.2.0 || 19.0.0 || 19.1.0 languageName: unknown linkType: soft @@ -9516,11 +10686,11 @@ __metadata: react-native-macos: "npm:^0.74.0" react-native-windows: "npm:^0.74.0" peerDependencies: - "@office-iss/react-native-win32": ^0.73.0 || ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + "@office-iss/react-native-win32": ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -9548,7 +10718,7 @@ __metadata: react: "npm:18.2.0" react-native: "npm:^0.74.0" peerDependencies: - react: 18.2.0 + react: 18.2.0 || 19.0.0 || 19.1.0 languageName: unknown linkType: soft @@ -9570,7 +10740,7 @@ __metadata: react: "npm:18.2.0" react-native: "npm:^0.74.0" peerDependencies: - react: 18.2.0 + react: 18.2.0 || 19.0.0 || 19.1.0 languageName: unknown linkType: soft @@ -9592,7 +10762,7 @@ __metadata: react: "npm:18.2.0" react-native: "npm:^0.74.0" peerDependencies: - react: 18.2.0 + react: 18.2.0 || 19.0.0 || 19.1.0 languageName: unknown linkType: soft @@ -9617,10 +10787,10 @@ __metadata: react-native-windows: "npm:^0.74.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 - react-native-macos: ^0.73.0 || ^0.74.0 - react-native-windows: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 peerDependenciesMeta: "@office-iss/react-native-win32": optional: true @@ -9671,6 +10841,13 @@ __metadata: languageName: node linkType: hard +"@vscode/sudo-prompt@npm:^9.0.0": + version: 9.3.2 + resolution: "@vscode/sudo-prompt@npm:9.3.2" + checksum: 10c0/9cf63f7001f31ada248aefe0d289e8769d82d9eeb12845aef863faf44620cbe620897625af4e160ab1c2a684d88247a0dbaead0d9a9447a5807feb4a4fd47016 + languageName: node + linkType: hard + "@vue/compiler-core@npm:3.3.4": version: 3.3.4 resolution: "@vue/compiler-core@npm:3.3.4" @@ -11189,6 +12366,24 @@ __metadata: languageName: node linkType: hard +"babel-plugin-syntax-hermes-parser@npm:0.28.1": + version: 0.28.1 + resolution: "babel-plugin-syntax-hermes-parser@npm:0.28.1" + dependencies: + hermes-parser: "npm:0.28.1" + checksum: 10c0/7a522b5f3f31701e4e70ddd7976946abe4b1bf8a041fd091f672411eb0f67a79253a671b934aa27bab305e0845933a4cdb9016fcea80b64c95e18cec8d08a154 + languageName: node + linkType: hard + +"babel-plugin-syntax-hermes-parser@npm:0.29.1": + version: 0.29.1 + resolution: "babel-plugin-syntax-hermes-parser@npm:0.29.1" + dependencies: + hermes-parser: "npm:0.29.1" + checksum: 10c0/a6d95e4a7079976e477636d18509272a7a185930e143c61d0421a36096e85905563630ac4f0f317518b6db37f50daaefc1828d575b3d5fb090a55e9d39d2534c + languageName: node + linkType: hard + "babel-plugin-transform-flow-enums@npm:^0.0.2": version: 0.0.2 resolution: "babel-plugin-transform-flow-enums@npm:0.0.2" @@ -11389,6 +12584,26 @@ __metadata: languageName: node linkType: hard +"body-parser@npm:^1.20.3": + version: 1.20.4 + resolution: "body-parser@npm:1.20.4" + dependencies: + bytes: "npm:~3.1.2" + content-type: "npm:~1.0.5" + debug: "npm:2.6.9" + depd: "npm:2.0.0" + destroy: "npm:~1.2.0" + http-errors: "npm:~2.0.1" + iconv-lite: "npm:~0.4.24" + on-finished: "npm:~2.4.1" + qs: "npm:~6.14.0" + raw-body: "npm:~2.5.3" + type-is: "npm:~1.6.18" + unpipe: "npm:~1.0.0" + checksum: 10c0/569c1e896297d1fcd8f34026c8d0ab70b90d45343c15c5d8dff5de2bad08125fc1e2f8c2f3f4c1ac6c0caaad115218202594d37dcb8d89d9b5dcae1c2b736aa9 + languageName: node + linkType: hard + "boolbase@npm:^1.0.0": version: 1.0.0 resolution: "boolbase@npm:1.0.0" @@ -11744,6 +12959,20 @@ __metadata: languageName: node linkType: hard +"chromium-edge-launcher@npm:^0.2.0": + version: 0.2.0 + resolution: "chromium-edge-launcher@npm:0.2.0" + dependencies: + "@types/node": "npm:*" + escape-string-regexp: "npm:^4.0.0" + is-wsl: "npm:^2.2.0" + lighthouse-logger: "npm:^1.0.0" + mkdirp: "npm:^1.0.4" + rimraf: "npm:^3.0.2" + checksum: 10c0/880972816dd9b95c0eb77d1f707569667a8cce7cc29fe9c8d199c47fdfbe4971e9da3e5a29f61c4ecec29437ac7cebbbb5afc30bec96306579d1121e7340606a + languageName: node + linkType: hard + "ci-info@npm:^2.0.0": version: 2.0.0 resolution: "ci-info@npm:2.0.0" @@ -12039,6 +13268,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^12.0.0": + version: 12.1.0 + resolution: "commander@npm:12.1.0" + checksum: 10c0/6e1996680c083b3b897bfc1cfe1c58dfbcd9842fd43e1aaf8a795fbc237f65efcc860a3ef457b318e73f29a4f4a28f6403c3d653d021d960e4632dd45bde54a9 + languageName: node + linkType: hard + "commander@npm:^13.1.0": version: 13.1.0 resolution: "commander@npm:13.1.0" @@ -12172,7 +13408,7 @@ __metadata: languageName: node linkType: hard -"content-type@npm:^1.0.5": +"content-type@npm:^1.0.5, content-type@npm:~1.0.5": version: 1.0.5 resolution: "content-type@npm:1.0.5" checksum: 10c0/b76ebed15c000aee4678c3707e0860cb6abd4e680a598c0a26e17f0bfae723ec9cc2802f0ff1bc6e4d80603719010431d2231018373d4dde10f9ccff9dadf5af @@ -12268,6 +13504,23 @@ __metadata: languageName: node linkType: hard +"cosmiconfig@npm:^9.0.0": + version: 9.0.0 + resolution: "cosmiconfig@npm:9.0.0" + dependencies: + env-paths: "npm:^2.2.1" + import-fresh: "npm:^3.3.0" + js-yaml: "npm:^4.1.0" + parse-json: "npm:^5.2.0" + peerDependencies: + typescript: ">=4.9.5" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/1c1703be4f02a250b1d6ca3267e408ce16abfe8364193891afc94c2d5c060b69611fdc8d97af74b7e6d5d1aac0ab2fb94d6b079573146bc2d756c2484ce5f0ee + languageName: node + linkType: hard + "crc-32@npm:^1.2.0": version: 1.2.2 resolution: "crc-32@npm:1.2.2" @@ -12727,7 +13980,7 @@ __metadata: languageName: node linkType: hard -"destroy@npm:1.2.0": +"destroy@npm:1.2.0, destroy@npm:~1.2.0": version: 1.2.0 resolution: "destroy@npm:1.2.0" checksum: 10c0/bd7633942f57418f5a3b80d5cb53898127bcf53e24cdf5d5f4396be471417671f0fee48a4ebe9a1e9defbde2a31280011af58a57e090ff822f589b443ed4e643 @@ -13098,7 +14351,7 @@ __metadata: languageName: node linkType: hard -"env-paths@npm:2.2.1, env-paths@npm:^2.2.0": +"env-paths@npm:2.2.1, env-paths@npm:^2.2.0, env-paths@npm:^2.2.1": version: 2.2.1 resolution: "env-paths@npm:2.2.1" checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 @@ -13114,6 +14367,15 @@ __metadata: languageName: node linkType: hard +"envinfo@npm:^7.13.0": + version: 7.21.0 + resolution: "envinfo@npm:7.21.0" + bin: + envinfo: dist/cli.js + checksum: 10c0/4170127ca72dbf85be2c114f85558bd08178e8a43b394951ba9fd72d067c6fea3374df45a7b040e39e4e7b30bdd268e5bdf8661d99ae28302c2a88dedb41b5e6 + languageName: node + linkType: hard + "err-code@npm:^2.0.2": version: 2.0.3 resolution: "err-code@npm:2.0.3" @@ -13454,6 +14716,95 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:^0.27.1": + version: 0.27.2 + resolution: "esbuild@npm:0.27.2" + dependencies: + "@esbuild/aix-ppc64": "npm:0.27.2" + "@esbuild/android-arm": "npm:0.27.2" + "@esbuild/android-arm64": "npm:0.27.2" + "@esbuild/android-x64": "npm:0.27.2" + "@esbuild/darwin-arm64": "npm:0.27.2" + "@esbuild/darwin-x64": "npm:0.27.2" + "@esbuild/freebsd-arm64": "npm:0.27.2" + "@esbuild/freebsd-x64": "npm:0.27.2" + "@esbuild/linux-arm": "npm:0.27.2" + "@esbuild/linux-arm64": "npm:0.27.2" + "@esbuild/linux-ia32": "npm:0.27.2" + "@esbuild/linux-loong64": "npm:0.27.2" + "@esbuild/linux-mips64el": "npm:0.27.2" + "@esbuild/linux-ppc64": "npm:0.27.2" + "@esbuild/linux-riscv64": "npm:0.27.2" + "@esbuild/linux-s390x": "npm:0.27.2" + "@esbuild/linux-x64": "npm:0.27.2" + "@esbuild/netbsd-arm64": "npm:0.27.2" + "@esbuild/netbsd-x64": "npm:0.27.2" + "@esbuild/openbsd-arm64": "npm:0.27.2" + "@esbuild/openbsd-x64": "npm:0.27.2" + "@esbuild/openharmony-arm64": "npm:0.27.2" + "@esbuild/sunos-x64": "npm:0.27.2" + "@esbuild/win32-arm64": "npm:0.27.2" + "@esbuild/win32-ia32": "npm:0.27.2" + "@esbuild/win32-x64": "npm:0.27.2" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-arm64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/openharmony-arm64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10c0/cf83f626f55500f521d5fe7f4bc5871bec240d3deb2a01fbd379edc43b3664d1167428738a5aad8794b35d1cca985c44c375b1cd38a2ca613c77ced2c83aafcd + languageName: node + linkType: hard + "escalade@npm:^3.1.1, escalade@npm:^3.2.0": version: 3.2.0 resolution: "escalade@npm:3.2.0" @@ -14159,7 +15510,7 @@ __metadata: languageName: node linkType: hard -"fast-xml-parser@npm:^4.0.0, fast-xml-parser@npm:^4.0.12, fast-xml-parser@npm:^4.2.4": +"fast-xml-parser@npm:^4.0.0, fast-xml-parser@npm:^4.0.12, fast-xml-parser@npm:^4.2.4, fast-xml-parser@npm:^4.4.1": version: 4.5.3 resolution: "fast-xml-parser@npm:4.5.3" dependencies: @@ -15101,6 +16452,27 @@ __metadata: languageName: node linkType: hard +"hermes-estree@npm:0.28.1": + version: 0.28.1 + resolution: "hermes-estree@npm:0.28.1" + checksum: 10c0/aa00f437c82099b9043e384b529c75de21d0111b792ab7480fe992975b5f9535a8581664789db197824a7825ea66d2fd70eb20cb568c5315804421deaf009500 + languageName: node + linkType: hard + +"hermes-estree@npm:0.29.1": + version: 0.29.1 + resolution: "hermes-estree@npm:0.29.1" + checksum: 10c0/e6b01f79ba708697d61a74b871d5ebae5f863c6d782657d8e2d2256eb838f1eb86ff9c34773a81d9cc69e54be3a5059c686e0ab54a4afba903b40dde92dd0ccb + languageName: node + linkType: hard + +"hermes-estree@npm:0.32.0": + version: 0.32.0 + resolution: "hermes-estree@npm:0.32.0" + checksum: 10c0/3b67d1fe44336240ef7f9c40ecbf363279ba263d51efe120570c3862cc109e652fc09aebddfe6b73d0f0246610bee130e4064c359f1f4cbf002bdb1d99717ef2 + languageName: node + linkType: hard + "hermes-parser@npm:0.19.1": version: 0.19.1 resolution: "hermes-parser@npm:0.19.1" @@ -15119,6 +16491,33 @@ __metadata: languageName: node linkType: hard +"hermes-parser@npm:0.28.1": + version: 0.28.1 + resolution: "hermes-parser@npm:0.28.1" + dependencies: + hermes-estree: "npm:0.28.1" + checksum: 10c0/c6d3c01fb1ea5232f4587b6b038f5c2c6414932e7c48efbe156ab160e2bcaac818c9eb2f828f30967a24b40f543cad503baed0eedf5a7e877852ed271915981f + languageName: node + linkType: hard + +"hermes-parser@npm:0.29.1": + version: 0.29.1 + resolution: "hermes-parser@npm:0.29.1" + dependencies: + hermes-estree: "npm:0.29.1" + checksum: 10c0/7f40d9bdfb5acaa700f333a24c644b17f5f8d0e823b1e7a9fb6dcf253a54d54716ae63c74effa023688ee4f09013c80188c40d601570fee256a44954e04c2926 + languageName: node + linkType: hard + +"hermes-parser@npm:0.32.0": + version: 0.32.0 + resolution: "hermes-parser@npm:0.32.0" + dependencies: + hermes-estree: "npm:0.32.0" + checksum: 10c0/5902d2c5d347c0629fba07a47eaad5569590ac69bc8bfb2e454e08d2dfbe1ebd989d88518dca2cba64061689b5eac5960ae6bd15a4a66600bbf377498a3234b7 + languageName: node + linkType: hard + "hermes-profile-transformer@npm:^0.0.6": version: 0.0.6 resolution: "hermes-profile-transformer@npm:0.0.6" @@ -15287,7 +16686,7 @@ __metadata: languageName: node linkType: hard -"https-proxy-agent@npm:^7.0.6": +"https-proxy-agent@npm:^7.0.5, https-proxy-agent@npm:^7.0.6": version: 7.0.6 resolution: "https-proxy-agent@npm:7.0.6" dependencies: @@ -15352,6 +16751,15 @@ __metadata: languageName: node linkType: hard +"iconv-lite@npm:~0.4.24": + version: 0.4.24 + resolution: "iconv-lite@npm:0.4.24" + dependencies: + safer-buffer: "npm:>= 2.1.2 < 3" + checksum: 10c0/c6886a24cc00f2a059767440ec1bc00d334a89f250db8e0f7feb4961c8727118457e27c495ba94d082e51d3baca378726cd110aaf7ded8b9bbfd6a44760cf1d4 + languageName: node + linkType: hard + "ieee754@npm:^1.1.13, ieee754@npm:^1.2.1": version: 1.2.1 resolution: "ieee754@npm:1.2.1" @@ -17076,6 +18484,16 @@ __metadata: languageName: node linkType: hard +"launch-editor@npm:^2.9.1": + version: 2.12.0 + resolution: "launch-editor@npm:2.12.0" + dependencies: + picocolors: "npm:^1.1.1" + shell-quote: "npm:^1.8.3" + checksum: 10c0/fac5e7ad90bf185594cad4c831a52419eef50e667c4eddb5b0a58eb5f944e16d947636ee767b9896ffd46a51db34925edd3b854c48efb47f6d767ffd7d904e71 + languageName: node + linkType: hard + "lazystream@npm:^1.0.0": version: 1.0.1 resolution: "lazystream@npm:1.0.1" @@ -17576,6 +18994,13 @@ __metadata: languageName: node linkType: hard +"media-typer@npm:0.3.0": + version: 0.3.0 + resolution: "media-typer@npm:0.3.0" + checksum: 10c0/d160f31246907e79fed398470285f21bafb45a62869dc469b1c8877f3f064f5eabc4bcc122f9479b8b605bc5c76187d7871cf84c4ee3ecd3e487da1993279928 + languageName: node + linkType: hard + "media-typer@npm:^1.1.0": version: 1.1.0 resolution: "media-typer@npm:1.1.0" @@ -17671,6 +19096,18 @@ __metadata: languageName: node linkType: hard +"metro-babel-transformer@npm:0.83.3": + version: 0.83.3 + resolution: "metro-babel-transformer@npm:0.83.3" + dependencies: + "@babel/core": "npm:^7.25.2" + flow-enums-runtime: "npm:^0.0.6" + hermes-parser: "npm:0.32.0" + nullthrows: "npm:^1.1.1" + checksum: 10c0/b0107f86cdc9ef9419d669b5b3dac22e35b02c67c480563a63d98f5fb50953587938769efc854bfc09c225557790cd6488dbe3fed6f05c2b3f322cfb2e5ff577 + languageName: node + linkType: hard + "metro-cache-key@npm:0.80.12": version: 0.80.12 resolution: "metro-cache-key@npm:0.80.12" @@ -17680,6 +19117,15 @@ __metadata: languageName: node linkType: hard +"metro-cache-key@npm:0.83.3": + version: 0.83.3 + resolution: "metro-cache-key@npm:0.83.3" + dependencies: + flow-enums-runtime: "npm:^0.0.6" + checksum: 10c0/403a2ca5b5bbb31a979effaa31fba0c47e2eb3830428c39c99db58aa0739a6fcc386f5a56c91495c53a4569065f0bda29e3038e9c41ca17af443971395f257dc + languageName: node + linkType: hard + "metro-cache@npm:0.80.12": version: 0.80.12 resolution: "metro-cache@npm:0.80.12" @@ -17691,6 +19137,18 @@ __metadata: languageName: node linkType: hard +"metro-cache@npm:0.83.3": + version: 0.83.3 + resolution: "metro-cache@npm:0.83.3" + dependencies: + exponential-backoff: "npm:^3.1.1" + flow-enums-runtime: "npm:^0.0.6" + https-proxy-agent: "npm:^7.0.5" + metro-core: "npm:0.83.3" + checksum: 10c0/608e85d819092c0b472c9adabb5de58e88355739de71833230626c1af7f3ce5dd1dca9f1ff3a836d995201f717315fd769c4c646a818c1f490ea2ec29417e32a + languageName: node + linkType: hard + "metro-config@npm:0.80.12, metro-config@npm:^0.80.3": version: 0.80.12 resolution: "metro-config@npm:0.80.12" @@ -17707,6 +19165,22 @@ __metadata: languageName: node linkType: hard +"metro-config@npm:0.83.3, metro-config@npm:^0.83.1": + version: 0.83.3 + resolution: "metro-config@npm:0.83.3" + dependencies: + connect: "npm:^3.6.5" + flow-enums-runtime: "npm:^0.0.6" + jest-validate: "npm:^29.7.0" + metro: "npm:0.83.3" + metro-cache: "npm:0.83.3" + metro-core: "npm:0.83.3" + metro-runtime: "npm:0.83.3" + yaml: "npm:^2.6.1" + checksum: 10c0/c53e4a061cfc776a65cdb5055c0be840055f9741dae25e7d407835988618b15f1407270dbd957c7333d01e9c79eccbf8e6bcb76421b2145bd134b53df459a033 + languageName: node + linkType: hard + "metro-core@npm:0.80.12, metro-core@npm:^0.80.3": version: 0.80.12 resolution: "metro-core@npm:0.80.12" @@ -17718,6 +19192,17 @@ __metadata: languageName: node linkType: hard +"metro-core@npm:0.83.3, metro-core@npm:^0.83.1": + version: 0.83.3 + resolution: "metro-core@npm:0.83.3" + dependencies: + flow-enums-runtime: "npm:^0.0.6" + lodash.throttle: "npm:^4.1.1" + metro-resolver: "npm:0.83.3" + checksum: 10c0/d44c1f117c4b27f18abd27110e9536abf3105733e8fccaa522bd0e008248cce0260130517840c4914d7ce5df498f39ecfd43b6046a0f0b1c0f8ada7de38e52c4 + languageName: node + linkType: hard + "metro-file-map@npm:0.80.12": version: 0.80.12 resolution: "metro-file-map@npm:0.80.12" @@ -17741,6 +19226,23 @@ __metadata: languageName: node linkType: hard +"metro-file-map@npm:0.83.3": + version: 0.83.3 + resolution: "metro-file-map@npm:0.83.3" + dependencies: + debug: "npm:^4.4.0" + fb-watchman: "npm:^2.0.0" + flow-enums-runtime: "npm:^0.0.6" + graceful-fs: "npm:^4.2.4" + invariant: "npm:^2.2.4" + jest-worker: "npm:^29.7.0" + micromatch: "npm:^4.0.4" + nullthrows: "npm:^1.1.1" + walker: "npm:^1.0.7" + checksum: 10c0/4bf9c0fcdb5a5c08851f7370d6427fb68a770f156c4eabbddf20bd3583fb25ae428507eaeb8dc525e792db41d048620209750f33735055863abc909cbb6ef71a + languageName: node + linkType: hard + "metro-minify-terser@npm:0.80.12": version: 0.80.12 resolution: "metro-minify-terser@npm:0.80.12" @@ -17751,6 +19253,16 @@ __metadata: languageName: node linkType: hard +"metro-minify-terser@npm:0.83.3": + version: 0.83.3 + resolution: "metro-minify-terser@npm:0.83.3" + dependencies: + flow-enums-runtime: "npm:^0.0.6" + terser: "npm:^5.15.0" + checksum: 10c0/9158e3199c0ea647776a7ed5c68ec1bb493f5347ac979f1ca75020cf1c39f907bd29983d60f8cb24dca17053d6b5c35f140c6d720fad0bd0fa9728e8c51e95c6 + languageName: node + linkType: hard + "metro-resolver@npm:0.80.12": version: 0.80.12 resolution: "metro-resolver@npm:0.80.12" @@ -17760,6 +19272,15 @@ __metadata: languageName: node linkType: hard +"metro-resolver@npm:0.83.3": + version: 0.83.3 + resolution: "metro-resolver@npm:0.83.3" + dependencies: + flow-enums-runtime: "npm:^0.0.6" + checksum: 10c0/1d6c030a00b987fbee38e5c632219b2be602e38c9aa9628bb4b591f646e64130d08adb8dcb35076c5c8cc151135557b655f3dee514c0df9f26d3416629eb006b + languageName: node + linkType: hard + "metro-runtime@npm:0.80.12, metro-runtime@npm:^0.80.3": version: 0.80.12 resolution: "metro-runtime@npm:0.80.12" @@ -17770,6 +19291,16 @@ __metadata: languageName: node linkType: hard +"metro-runtime@npm:0.83.3, metro-runtime@npm:^0.83.1": + version: 0.83.3 + resolution: "metro-runtime@npm:0.83.3" + dependencies: + "@babel/runtime": "npm:^7.25.0" + flow-enums-runtime: "npm:^0.0.6" + checksum: 10c0/1d788483b6c2f13e0ea9ff4564996154754d3de84f683812ac848053eaea9243144adee3e8ffe90789e6c253f7402211d72b1b5ebf09e6c23841bc956a680253 + languageName: node + linkType: hard + "metro-source-map@npm:0.80.12, metro-source-map@npm:^0.80.3": version: 0.80.12 resolution: "metro-source-map@npm:0.80.12" @@ -17787,6 +19318,42 @@ __metadata: languageName: node linkType: hard +"metro-source-map@npm:0.82.5, metro-source-map@npm:^0.82.2": + version: 0.82.5 + resolution: "metro-source-map@npm:0.82.5" + dependencies: + "@babel/traverse": "npm:^7.25.3" + "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3" + "@babel/types": "npm:^7.25.2" + flow-enums-runtime: "npm:^0.0.6" + invariant: "npm:^2.2.4" + metro-symbolicate: "npm:0.82.5" + nullthrows: "npm:^1.1.1" + ob1: "npm:0.82.5" + source-map: "npm:^0.5.6" + vlq: "npm:^1.0.0" + checksum: 10c0/cf04c8f5430eaf2aa8aa97034382d2cb1b0906a4c7cf3c4faaf0203eb00dd683b8d108e74694700a10085796beb292383cfcea50b388cc03062640bd95d3f84a + languageName: node + linkType: hard + +"metro-source-map@npm:0.83.3, metro-source-map@npm:^0.83.1": + version: 0.83.3 + resolution: "metro-source-map@npm:0.83.3" + dependencies: + "@babel/traverse": "npm:^7.25.3" + "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3" + "@babel/types": "npm:^7.25.2" + flow-enums-runtime: "npm:^0.0.6" + invariant: "npm:^2.2.4" + metro-symbolicate: "npm:0.83.3" + nullthrows: "npm:^1.1.1" + ob1: "npm:0.83.3" + source-map: "npm:^0.5.6" + vlq: "npm:^1.0.0" + checksum: 10c0/47e984bde1f8f06348298771f44b5803657c9cfa387df8ff36a359cc72ae3bc0e9c4ea6141345609b183ac8c63dcc997000d3626006e388c24779abb57c6f82c + languageName: node + linkType: hard + "metro-symbolicate@npm:0.80.12": version: 0.80.12 resolution: "metro-symbolicate@npm:0.80.12" @@ -17804,6 +19371,38 @@ __metadata: languageName: node linkType: hard +"metro-symbolicate@npm:0.82.5": + version: 0.82.5 + resolution: "metro-symbolicate@npm:0.82.5" + dependencies: + flow-enums-runtime: "npm:^0.0.6" + invariant: "npm:^2.2.4" + metro-source-map: "npm:0.82.5" + nullthrows: "npm:^1.1.1" + source-map: "npm:^0.5.6" + vlq: "npm:^1.0.0" + bin: + metro-symbolicate: src/index.js + checksum: 10c0/39c53b878ae9392586e23ff3a8071eceb1feed2d226e3ac9a170eb6bcd46fe6b69b8204851ee8eb231fdc3eac9012af3c6940ad48f6d1c04810ea9c4a75e1c7c + languageName: node + linkType: hard + +"metro-symbolicate@npm:0.83.3": + version: 0.83.3 + resolution: "metro-symbolicate@npm:0.83.3" + dependencies: + flow-enums-runtime: "npm:^0.0.6" + invariant: "npm:^2.2.4" + metro-source-map: "npm:0.83.3" + nullthrows: "npm:^1.1.1" + source-map: "npm:^0.5.6" + vlq: "npm:^1.0.0" + bin: + metro-symbolicate: src/index.js + checksum: 10c0/bd3d234c7581466a9a78f952caa25816666753f6b560fe41502727b3e59931ac65225c9909635dc7c25d4dfaf392631366ef3ec5fa8490413385d60f8d900112 + languageName: node + linkType: hard + "metro-transform-plugins@npm:0.80.12": version: 0.80.12 resolution: "metro-transform-plugins@npm:0.80.12" @@ -17818,6 +19417,20 @@ __metadata: languageName: node linkType: hard +"metro-transform-plugins@npm:0.83.3": + version: 0.83.3 + resolution: "metro-transform-plugins@npm:0.83.3" + dependencies: + "@babel/core": "npm:^7.25.2" + "@babel/generator": "npm:^7.25.0" + "@babel/template": "npm:^7.25.0" + "@babel/traverse": "npm:^7.25.3" + flow-enums-runtime: "npm:^0.0.6" + nullthrows: "npm:^1.1.1" + checksum: 10c0/df3c6db6a69d4888e1b6aad40d48ffec0c3c3faa38e89c07633432fc107ef12c47d55598904c91aadfe0751c5bcb7ec191f8a5ee70c18d253201150fc617ca37 + languageName: node + linkType: hard + "metro-transform-worker@npm:0.80.12": version: 0.80.12 resolution: "metro-transform-worker@npm:0.80.12" @@ -17839,6 +19452,27 @@ __metadata: languageName: node linkType: hard +"metro-transform-worker@npm:0.83.3": + version: 0.83.3 + resolution: "metro-transform-worker@npm:0.83.3" + dependencies: + "@babel/core": "npm:^7.25.2" + "@babel/generator": "npm:^7.25.0" + "@babel/parser": "npm:^7.25.3" + "@babel/types": "npm:^7.25.2" + flow-enums-runtime: "npm:^0.0.6" + metro: "npm:0.83.3" + metro-babel-transformer: "npm:0.83.3" + metro-cache: "npm:0.83.3" + metro-cache-key: "npm:0.83.3" + metro-minify-terser: "npm:0.83.3" + metro-source-map: "npm:0.83.3" + metro-transform-plugins: "npm:0.83.3" + nullthrows: "npm:^1.1.1" + checksum: 10c0/bea0cbcc7d13cd2b97a2159257b3a53b9ecfb15da18ace82ae05bf2d0ac7cc1806c0bd77ed3b8f4c82c9532773fb99f3938e4b1480e2673f5eda69575ee1d7ef + languageName: node + linkType: hard + "metro@npm:0.80.12, metro@npm:^0.80.3": version: 0.80.12 resolution: "metro@npm:0.80.12" @@ -17891,6 +19525,56 @@ __metadata: languageName: node linkType: hard +"metro@npm:0.83.3, metro@npm:^0.83.1": + version: 0.83.3 + resolution: "metro@npm:0.83.3" + dependencies: + "@babel/code-frame": "npm:^7.24.7" + "@babel/core": "npm:^7.25.2" + "@babel/generator": "npm:^7.25.0" + "@babel/parser": "npm:^7.25.3" + "@babel/template": "npm:^7.25.0" + "@babel/traverse": "npm:^7.25.3" + "@babel/types": "npm:^7.25.2" + accepts: "npm:^1.3.7" + chalk: "npm:^4.0.0" + ci-info: "npm:^2.0.0" + connect: "npm:^3.6.5" + debug: "npm:^4.4.0" + error-stack-parser: "npm:^2.0.6" + flow-enums-runtime: "npm:^0.0.6" + graceful-fs: "npm:^4.2.4" + hermes-parser: "npm:0.32.0" + image-size: "npm:^1.0.2" + invariant: "npm:^2.2.4" + jest-worker: "npm:^29.7.0" + jsc-safe-url: "npm:^0.2.2" + lodash.throttle: "npm:^4.1.1" + metro-babel-transformer: "npm:0.83.3" + metro-cache: "npm:0.83.3" + metro-cache-key: "npm:0.83.3" + metro-config: "npm:0.83.3" + metro-core: "npm:0.83.3" + metro-file-map: "npm:0.83.3" + metro-resolver: "npm:0.83.3" + metro-runtime: "npm:0.83.3" + metro-source-map: "npm:0.83.3" + metro-symbolicate: "npm:0.83.3" + metro-transform-plugins: "npm:0.83.3" + metro-transform-worker: "npm:0.83.3" + mime-types: "npm:^2.1.27" + nullthrows: "npm:^1.1.1" + serialize-error: "npm:^2.1.0" + source-map: "npm:^0.5.6" + throat: "npm:^5.0.0" + ws: "npm:^7.5.10" + yargs: "npm:^17.6.2" + bin: + metro: src/cli.js + checksum: 10c0/9513c05725c3984ce3b72896c4f7d019ad4fd024a1231b8b84c5c655a0563fc7f26725f28c20c5d3511e3825d64fec3a1e68621f6a6af34d785c5e714ed7da89 + languageName: node + linkType: hard + "micromatch@npm:^4.0.0, micromatch@npm:^4.0.4, micromatch@npm:^4.0.7, micromatch@npm:^4.0.8": version: 4.0.8 resolution: "micromatch@npm:4.0.8" @@ -17915,7 +19599,7 @@ __metadata: languageName: node linkType: hard -"mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:~2.1.34": +"mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": version: 2.1.35 resolution: "mime-types@npm:2.1.35" dependencies: @@ -18582,6 +20266,24 @@ __metadata: languageName: node linkType: hard +"ob1@npm:0.82.5": + version: 0.82.5 + resolution: "ob1@npm:0.82.5" + dependencies: + flow-enums-runtime: "npm:^0.0.6" + checksum: 10c0/4d65e82fde0612a5c411f3c926de6bc722bdb4751c4fb08f5a5ef91bdaf860e7f9c4f08dcb7acfdfc05340fc4929efb00ea9e973570c1d61adfc4353657abf55 + languageName: node + linkType: hard + +"ob1@npm:0.83.3": + version: 0.83.3 + resolution: "ob1@npm:0.83.3" + dependencies: + flow-enums-runtime: "npm:^0.0.6" + checksum: 10c0/9231315de39cf0612a01e283c7d7ef31d16618e598de96e44ae1ab3007629296ce1a3d5d02ef60ff22d9fefe33050358c10e7fcba8278861157b89befe13cb3d + languageName: node + linkType: hard + "object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" @@ -18671,7 +20373,7 @@ __metadata: languageName: node linkType: hard -"on-finished@npm:2.4.1, on-finished@npm:^2.4.1": +"on-finished@npm:2.4.1, on-finished@npm:^2.4.1, on-finished@npm:~2.4.1": version: 2.4.1 resolution: "on-finished@npm:2.4.1" dependencies: @@ -19621,7 +21323,7 @@ __metadata: languageName: node linkType: hard -"qs@npm:^6.14.0": +"qs@npm:^6.14.0, qs@npm:~6.14.0": version: 6.14.1 resolution: "qs@npm:6.14.1" dependencies: @@ -19679,6 +21381,18 @@ __metadata: languageName: node linkType: hard +"raw-body@npm:~2.5.3": + version: 2.5.3 + resolution: "raw-body@npm:2.5.3" + dependencies: + bytes: "npm:~3.1.2" + http-errors: "npm:~2.0.1" + iconv-lite: "npm:~0.4.24" + unpipe: "npm:~1.0.0" + checksum: 10c0/449844344fc90547fb994383a494b83300e4f22199f146a79f68d78a199a8f2a923ea9fd29c3be979bfd50291a3884733619ffc15ba02a32e703b612f8d3f74a + languageName: node + linkType: hard + "react-clone-referenced-element@npm:^1.0.1": version: 1.1.1 resolution: "react-clone-referenced-element@npm:1.1.1" @@ -19696,6 +21410,16 @@ __metadata: languageName: node linkType: hard +"react-devtools-core@npm:^6.1.1, react-devtools-core@npm:^6.1.5": + version: 6.1.5 + resolution: "react-devtools-core@npm:6.1.5" + dependencies: + shell-quote: "npm:^1.6.1" + ws: "npm:^7" + checksum: 10c0/7ef95213d06ad4b294f5dca73736641e2d8ff46861d3deacdc56a143b27de60ac6310898a52c7efd9fbd1bdef20c09305d05be80e6beb560f0f975aad6afbc5e + languageName: node + linkType: hard + "react-is@npm:^16.12.0 || ^17.0.0 || ^18.0.0, react-is@npm:^18.0.0, react-is@npm:^18.2.0, react-is@npm:^18.3.1": version: 18.3.1 resolution: "react-is@npm:18.3.1" @@ -19717,6 +21441,13 @@ __metadata: languageName: node linkType: hard +"react-is@npm:^19.1.0": + version: 19.2.4 + resolution: "react-is@npm:19.2.4" + checksum: 10c0/477a7cfc900f24194606e315fa353856a3a13487ea8eca841678817cad4daef64339ea0d1e84e58459fc75dbe0d9ba00bb0cc626db3d07e0cf31edc64cb4fa37 + languageName: node + linkType: hard + "react-native-macos@npm:0.74.30": version: 0.74.30 resolution: "react-native-macos@npm:0.74.30" @@ -19856,6 +21587,20 @@ __metadata: languageName: node linkType: hard +"react-native-svg@npm:^15.12.1": + version: 15.15.1 + resolution: "react-native-svg@npm:15.15.1" + dependencies: + css-select: "npm:^5.1.0" + css-tree: "npm:^1.1.3" + warn-once: "npm:0.1.1" + peerDependencies: + react: "*" + react-native: "*" + checksum: 10c0/9e047e8afdd5121296a3402c5c37363b9b37fbddc41f7b0b49b923ac4d2898954c8b57a6784a625321236987e494ee54f594e22f9de815f807e03a3433d7fefd + languageName: node + linkType: hard + "react-native-test-app@npm:^3.9.2": version: 3.10.22 resolution: "react-native-test-app@npm:3.10.22" @@ -19892,6 +21637,43 @@ __metadata: languageName: node linkType: hard +"react-native-test-app@npm:^4.4.11": + version: 4.4.12 + resolution: "react-native-test-app@npm:4.4.12" + dependencies: + "@rnx-kit/react-native-host": "npm:^0.5.11" + "@rnx-kit/tools-react-native": "npm:^2.1.0" + ajv: "npm:^8.0.0" + cliui: "npm:^8.0.0" + fast-xml-parser: "npm:^4.0.0" + prompts: "npm:^2.4.0" + semver: "npm:^7.3.5" + uuid: "npm:^11.0.0" + peerDependencies: + "@callstack/react-native-visionos": 0.73 - 0.79 + "@expo/config-plugins": ">=5.0" + react: 18.1 - 19.1 + react-native: 0.70 - 0.82 || >=0.83.0-0 <0.83.0 + react-native-macos: ^0.0.0-0 || 0.71 - 0.79 + react-native-windows: ^0.0.0-0 || 0.70 - 0.79 + peerDependenciesMeta: + "@callstack/react-native-visionos": + optional: true + "@expo/config-plugins": + optional: true + react-native-macos: + optional: true + react-native-windows: + optional: true + bin: + configure-test-app: scripts/configure.mjs + init: scripts/init.mjs + init-test-app: scripts/init.mjs + install-windows-test-app: windows/app.mjs + checksum: 10c0/d83f1cec79d4f5629e4370b0a378846d4a995070a025328b28883873a26b5a44fe883f7e64cb482d0dd49364e3d8884a3568f81293e56fd16a0b65efee4c3591 + languageName: node + linkType: hard + "react-native-windows@npm:^0.74.0": version: 0.74.46 resolution: "react-native-windows@npm:0.74.46" @@ -20000,6 +21782,56 @@ __metadata: languageName: node linkType: hard +"react-native@npm:^0.81.0": + version: 0.81.5 + resolution: "react-native@npm:0.81.5" + dependencies: + "@jest/create-cache-key-function": "npm:^29.7.0" + "@react-native/assets-registry": "npm:0.81.5" + "@react-native/codegen": "npm:0.81.5" + "@react-native/community-cli-plugin": "npm:0.81.5" + "@react-native/gradle-plugin": "npm:0.81.5" + "@react-native/js-polyfills": "npm:0.81.5" + "@react-native/normalize-colors": "npm:0.81.5" + "@react-native/virtualized-lists": "npm:0.81.5" + abort-controller: "npm:^3.0.0" + anser: "npm:^1.4.9" + ansi-regex: "npm:^5.0.0" + babel-jest: "npm:^29.7.0" + babel-plugin-syntax-hermes-parser: "npm:0.29.1" + base64-js: "npm:^1.5.1" + commander: "npm:^12.0.0" + flow-enums-runtime: "npm:^0.0.6" + glob: "npm:^7.1.1" + invariant: "npm:^2.2.4" + jest-environment-node: "npm:^29.7.0" + memoize-one: "npm:^5.0.0" + metro-runtime: "npm:^0.83.1" + metro-source-map: "npm:^0.83.1" + nullthrows: "npm:^1.1.1" + pretty-format: "npm:^29.7.0" + promise: "npm:^8.3.0" + react-devtools-core: "npm:^6.1.5" + react-refresh: "npm:^0.14.0" + regenerator-runtime: "npm:^0.13.2" + scheduler: "npm:0.26.0" + semver: "npm:^7.1.3" + stacktrace-parser: "npm:^0.1.10" + whatwg-fetch: "npm:^3.0.0" + ws: "npm:^6.2.3" + yargs: "npm:^17.6.2" + peerDependencies: + "@types/react": ^19.1.0 + react: ^19.1.0 + peerDependenciesMeta: + "@types/react": + optional: true + bin: + react-native: cli.js + checksum: 10c0/59b861b461e47a476dfe546b305f1b68b5248bedf2174f32c8aa02b0d1da8dc44fe8d0d60b426532353ff2b61d06d40a32a01dcc53043a3425e29b346065d159 + languageName: node + linkType: hard + "react-refresh@npm:^0.14.0": version: 0.14.0 resolution: "react-refresh@npm:0.14.0" @@ -20032,6 +21864,18 @@ __metadata: languageName: node linkType: hard +"react-test-renderer@npm:19.1.0": + version: 19.1.0 + resolution: "react-test-renderer@npm:19.1.0" + dependencies: + react-is: "npm:^19.1.0" + scheduler: "npm:^0.26.0" + peerDependencies: + react: ^19.1.0 + checksum: 10c0/34ed4a37ba8b0beb96c048de6ff28574f018a18dd1042c24f8f46142d48eb5b27f82ff7c2823d082932fd3983c5a3529ab8cc8f15191d4306df0082f9f84678f + languageName: node + linkType: hard + "react@npm:18.2.0": version: 18.2.0 resolution: "react@npm:18.2.0" @@ -20041,6 +21885,13 @@ __metadata: languageName: node linkType: hard +"react@npm:19.1.0": + version: 19.1.0 + resolution: "react@npm:19.1.0" + checksum: 10c0/530fb9a62237d54137a13d2cfb67a7db6a2156faed43eecc423f4713d9b20c6f2728b026b45e28fcd72e8eadb9e9ed4b089e99f5e295d2f0ad3134251bdd3698 + languageName: node + linkType: hard + "read-package-json-fast@npm:^4.0.0": version: 4.0.0 resolution: "read-package-json-fast@npm:4.0.0" @@ -20721,7 +22572,7 @@ __metadata: languageName: node linkType: hard -"safer-buffer@npm:>= 2.1.2 < 3.0.0": +"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 @@ -20753,6 +22604,13 @@ __metadata: languageName: node linkType: hard +"scheduler@npm:0.26.0, scheduler@npm:^0.26.0": + version: 0.26.0 + resolution: "scheduler@npm:0.26.0" + checksum: 10c0/5b8d5bfddaae3513410eda54f2268e98a376a429931921a81b5c3a2873aab7ca4d775a8caac5498f8cbc7d0daeab947cf923dbd8e215d61671f9f4e392d34356 + languageName: node + linkType: hard + "scheduler@npm:^0.23.0": version: 0.23.2 resolution: "scheduler@npm:0.23.2" @@ -20835,6 +22693,27 @@ __metadata: languageName: node linkType: hard +"send@npm:~0.19.1": + version: 0.19.2 + resolution: "send@npm:0.19.2" + dependencies: + debug: "npm:2.6.9" + depd: "npm:2.0.0" + destroy: "npm:1.2.0" + encodeurl: "npm:~2.0.0" + escape-html: "npm:~1.0.3" + etag: "npm:~1.8.1" + fresh: "npm:~0.5.2" + http-errors: "npm:~2.0.1" + mime: "npm:1.6.0" + ms: "npm:2.1.3" + on-finished: "npm:~2.4.1" + range-parser: "npm:~1.2.1" + statuses: "npm:~2.0.2" + checksum: 10c0/20c2389fe0fdf3fc499938cac598bc32272287e993c4960717381a10de8550028feadfb9076f959a3a3ebdea42e1f690e116f0d16468fa56b9fd41866d3dc267 + languageName: node + linkType: hard + "serialize-error@npm:^12.0.0": version: 12.0.0 resolution: "serialize-error@npm:12.0.0" @@ -20876,6 +22755,18 @@ __metadata: languageName: node linkType: hard +"serve-static@npm:^1.16.2": + version: 1.16.3 + resolution: "serve-static@npm:1.16.3" + dependencies: + encodeurl: "npm:~2.0.0" + escape-html: "npm:~1.0.3" + parseurl: "npm:~1.3.3" + send: "npm:~0.19.1" + checksum: 10c0/36320397a073c71bedf58af48a4a100fe6d93f07459af4d6f08b9a7217c04ce2a4939e0effd842dc7bece93ffcd59eb52f58c4fff2a8e002dc29ae6b219cd42b + languageName: node + linkType: hard + "serve-static@npm:^2.2.0": version: 2.2.1 resolution: "serve-static@npm:2.2.1" @@ -21071,7 +22962,7 @@ __metadata: languageName: node linkType: hard -"shell-quote@npm:1.8.3, shell-quote@npm:^1.6.1, shell-quote@npm:^1.7.3, shell-quote@npm:^1.8.1": +"shell-quote@npm:1.8.3, shell-quote@npm:^1.6.1, shell-quote@npm:^1.7.3, shell-quote@npm:^1.8.1, shell-quote@npm:^1.8.3": version: 1.8.3 resolution: "shell-quote@npm:1.8.3" checksum: 10c0/bee87c34e1e986cfb4c30846b8e6327d18874f10b535699866f368ade11ea4ee45433d97bf5eada22c4320c27df79c3a6a7eb1bf3ecfc47f2c997d9e5e2672fd @@ -21519,6 +23410,13 @@ __metadata: languageName: node linkType: hard +"strict-url-sanitise@npm:0.0.1": + version: 0.0.1 + resolution: "strict-url-sanitise@npm:0.0.1" + checksum: 10c0/9a93aff625f7bb369a299e295b10a73116f9a7fd94e3382bd0b85f6b6d4086d8285b4baf4bfed5dfa951573522e81f8cc937f8ffac4ee21385ca8316217a83c7 + languageName: node + linkType: hard + "string-length@npm:^4.0.1": version: 4.0.2 resolution: "string-length@npm:4.0.2" @@ -22250,6 +24148,16 @@ __metadata: languageName: node linkType: hard +"type-is@npm:~1.6.18": + version: 1.6.18 + resolution: "type-is@npm:1.6.18" + dependencies: + media-typer: "npm:0.3.0" + mime-types: "npm:~2.1.24" + checksum: 10c0/a23daeb538591b7efbd61ecf06b6feb2501b683ffdc9a19c74ef5baba362b4347e42f1b4ed81f5882a8c96a3bfff7f93ce3ffaf0cbbc879b532b04c97a55db9d + languageName: node + linkType: hard + "typed-array-buffer@npm:^1.0.3": version: 1.0.3 resolution: "typed-array-buffer@npm:1.0.3" @@ -22603,6 +24511,15 @@ __metadata: languageName: node linkType: hard +"uuid@npm:^11.0.0": + version: 11.1.0 + resolution: "uuid@npm:11.1.0" + bin: + uuid: dist/esm/bin/uuid + checksum: 10c0/34aa51b9874ae398c2b799c88a127701408cd581ee89ec3baa53509dd8728cbb25826f2a038f9465f8b7be446f0fbf11558862965b18d21c993684297628d4d3 + languageName: node + linkType: hard + "uuid@npm:^3.3.2": version: 3.4.0 resolution: "uuid@npm:3.4.0" From f375f18423c9da6ab3ad9bc7ac15c738cd8fe3c2 Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Thu, 29 Jan 2026 15:39:44 -0800 Subject: [PATCH 13/29] Change files --- ...-react-native-2c26d79b-1c84-4fe3-9444-633eda07a8b5.json | 7 +++++++ ...tive-adapters-535f6f7c-d42d-4552-ab3f-95b794ac7228.json | 7 +++++++ ...android-theme-dbacb516-f688-4ade-b720-c057ccee3ee9.json | 7 +++++++ ...e-apple-theme-990d6979-95b7-4ca4-84c2-edf581ccd4cb.json | 7 +++++++ ...native-avatar-f63a3580-59ab-4696-b0b0-e76cc15edd14.json | 7 +++++++ ...-native-badge-651e11a1-380a-44ad-a6fe-27c142742b2d.json | 7 +++++++ ...native-button-f29821ab-6325-449e-b2ee-04d80162ab9e.json | 7 +++++++ ...ative-callout-710b62fc-eafb-49de-8768-2ac7c4c5a75a.json | 7 +++++++ ...tive-checkbox-6bea647e-439a-4529-b9e6-78dfe7f26264.json | 7 +++++++ ...t-native-chip-0bf89ea3-0a3c-4c65-b49c-00e95506c915.json | 7 +++++++ ...e-composition-a9eb219a-c559-4b1b-ab34-de58c5fc3d58.json | 7 +++++++ ...ntextual-menu-c5120e6c-8139-437a-a1fb-5698b9b299f3.json | 7 +++++++ ...default-theme-65a065b1-4a5b-4186-a7b1-86d42cd1e025.json | 7 +++++++ ...ative-divider-d449d42d-f13f-411c-a5e7-e9d3c282cbae.json | 7 +++++++ ...native-drawer-e8f78276-becb-46db-aebd-b7b55f73e6de.json | 7 +++++++ ...tive-dropdown-402b0e63-1957-4bec-9b8a-6079ef27de58.json | 7 +++++++ ...e-e2e-testing-19026da6-ccd7-4af7-ae27-83adb152411a.json | 7 +++++++ ...ity-indicator-404227fa-583e-40fa-8371-4cc7f087a569.json | 7 +++++++ ...nce-additions-c707d1b5-4a36-4988-ba4a-68ab1d077a0a.json | 7 +++++++ ...mental-avatar-990af5f9-03a4-4027-a1a5-dbd6202741d1.json | 7 +++++++ ...ntal-checkbox-e64bc0d8-e1b8-431b-b861-d8d7621a3a5e.json | 7 +++++++ ...ntal-expander-c8a7fd4f-32bb-4dfb-abd4-75d974c68c4b.json | 7 +++++++ ...l-menu-button-78a325f9-2829-40a7-bfab-50b571e7d2ec.json | 7 +++++++ ...e-date-picker-8e6482e8-23dc-450e-8445-ef9a0342b01d.json | 7 +++++++ ...-font-metrics-c163f01d-a9d3-496d-adfb-a467b2e0fdcc.json | 7 +++++++ ...mental-shadow-827d1658-3f3d-46f7-9317-40ef1f6cb177.json | 7 +++++++ ...ental-shimmer-e0820723-6247-4af2-9c65-0fd7e4f4d557.json | 7 +++++++ ...cus-trap-zone-6ccccf25-3f23-486c-ac40-48aaa9d46014.json | 7 +++++++ ...ve-focus-zone-a705ddb9-b64d-4b88-93dc-2803eb305ffb.json | 7 +++++++ ...ramework-base-fad9cfc2-b079-4fd8-b92e-90390d07d193.json | 7 +++++++ ...ive-framework-cf80979b-fc44-4a50-a8ed-9b26c285ae48.json | 7 +++++++ ...t-native-icon-e4449df0-8c26-4c9f-9702-2b12045e9ce5.json | 7 +++++++ ...mutable-merge-b2ebba17-e1b5-4a3f-b11b-485ef91ddd4f.json | 7 +++++++ ...-native-input-366c88f0-999c-494b-8f86-de101ed27669.json | 7 +++++++ ...ractive-hooks-c25b0ba3-4d7b-42cd-bde1-6f5171e37c76.json | 7 +++++++ ...t-native-link-3ac29fca-fd3f-4476-8f89-dc2f16ad7dd8.json | 7 +++++++ ...ve-memo-cache-a180df7f-6fa4-4ca2-88ca-d1d3689badcb.json | 7 +++++++ ...t-native-menu-77e5c48b-8be1-47f6-a793-e0bc188464df.json | 7 +++++++ ...e-menu-button-689a6d68-12b1-40e9-a0ef-b5a5424ab14d.json | 7 +++++++ ...e-merge-props-50aef0ab-b76f-4b9f-8b78-028003418a7a.json | 7 +++++++ ...-notification-361a56a0-668b-40fc-8109-a85e84d4f643.json | 7 +++++++ ...tive-overflow-56a7e3ab-18f1-432f-87b4-f4daf268a8da.json | 7 +++++++ ...ative-persona-04cc88c5-e93d-4c7c-923a-77d216ffd7f2.json | 7 +++++++ ...-persona-coin-0525eb0d-2958-48a2-a180-96f25866b668.json | 7 +++++++ ...ative-popover-6e1b5572-ab76-4778-971f-d7832d8cc5c6.json | 7 +++++++ ...ive-pressable-ff0e0baf-1529-4b57-85f2-61e5878369b3.json | 7 +++++++ ...e-radio-group-51a73be5-a95d-438b-9ce4-8ed9cc91df9b.json | 7 +++++++ ...ive-separator-c2d5764f-6d34-4322-bc6b-2bb565c78b07.json | 7 +++++++ ...ative-spinner-c6d6cfc7-f1d8-4746-b776-ae730cfd0758.json | 7 +++++++ ...-native-stack-e2e08395-99ca-4521-8ae0-02e961c818a3.json | 7 +++++++ ...styling-utils-58e04a7d-3deb-42ba-bf02-dc3df56a1ae3.json | 7 +++++++ ...native-switch-ef5f9e52-ae82-44d7-8e17-f0efe7bd1e2e.json | 7 +++++++ ...ative-tablist-d7a93043-7b6d-4a3f-8ac0-5fcc178857a6.json | 7 +++++++ ...e-tester-core-816a3aa4-11ac-405c-9fde-a6407ab2ddb9.json | 7 +++++++ ...ster-win32-81-f2ed981f-aaca-49e4-b073-3dcd02b30438.json | 7 +++++++ ...t-native-text-ead71389-3edb-4142-9f26-31f8a9f683e0.json | 7 +++++++ ...-native-theme-25af8ebd-34c1-4782-806e-eb5167772b5a.json | 7 +++++++ ...-theme-tokens-eb8c8a71-6768-4f07-89c1-73f1c2a324bf.json | 7 +++++++ ...e-theme-types-681eeee0-3aff-4e0c-a0d6-979454ae4a86.json | 7 +++++++ ...ed-stylesheet-d5525e89-fc43-416b-b7cc-5dfaecce9aa0.json | 7 +++++++ ...theming-utils-bfaf64a8-87c2-456c-86d4-0443592cfa36.json | 7 +++++++ ...native-tokens-30bd7576-fa7b-428c-aea8-5d1ce2589131.json | 7 +++++++ ...ative-tooltip-92852859-b212-4c2e-a2be-76ce81c5f71b.json | 7 +++++++ ...tive-use-slot-b8823bcb-4da6-4970-9c11-b0e8f674c465.json | 7 +++++++ ...ive-use-slots-ec3a595e-ac3a-4199-81ca-c60e1ecc9f4e.json | 7 +++++++ ...e-use-styling-7ece5fef-1609-467e-a3ea-9a30f47f8b87.json | 7 +++++++ ...ve-use-tokens-34e2b173-de30-4135-98aa-1abf0c2a887f.json | 7 +++++++ ...vibrancy-view-5e09f406-b8e8-4ca8-8299-cf9de0e11e5f.json | 7 +++++++ ...e-win32-theme-4e49f068-7d27-4704-a957-068c8c338813.json | 7 +++++++ ...on-composable-1dd80897-f8aa-47df-908d-be0ca4010cc6.json | 7 +++++++ ...ation-compose-68cb5ecb-aca2-435f-913c-1726b2505839.json | 7 +++++++ ...tion-settings-d1ad6be8-d5f7-4f4f-ab9b-9823f2a48d80.json | 7 +++++++ ...dation-tokens-21182395-4783-496c-9f94-3cba180fb1ff.json | 7 +++++++ ...heme-registry-f197d4a7-7d9f-4a1d-b925-075a05d2d402.json | 7 +++++++ ...emed-settings-a0ef36e0-3eb2-4660-b521-7e72a0a00bea.json | 7 +++++++ ...-theming-ramp-bd5a4f10-f029-4f26-a3c4-635f8eb648f7.json | 7 +++++++ ...-react-native-a36353c1-b8f6-43c4-a56f-c86a1de4fb78.json | 7 +++++++ 77 files changed, 539 insertions(+) create mode 100644 change/@fluentui-react-native-2c26d79b-1c84-4fe3-9444-633eda07a8b5.json create mode 100644 change/@fluentui-react-native-adapters-535f6f7c-d42d-4552-ab3f-95b794ac7228.json create mode 100644 change/@fluentui-react-native-android-theme-dbacb516-f688-4ade-b720-c057ccee3ee9.json create mode 100644 change/@fluentui-react-native-apple-theme-990d6979-95b7-4ca4-84c2-edf581ccd4cb.json create mode 100644 change/@fluentui-react-native-avatar-f63a3580-59ab-4696-b0b0-e76cc15edd14.json create mode 100644 change/@fluentui-react-native-badge-651e11a1-380a-44ad-a6fe-27c142742b2d.json create mode 100644 change/@fluentui-react-native-button-f29821ab-6325-449e-b2ee-04d80162ab9e.json create mode 100644 change/@fluentui-react-native-callout-710b62fc-eafb-49de-8768-2ac7c4c5a75a.json create mode 100644 change/@fluentui-react-native-checkbox-6bea647e-439a-4529-b9e6-78dfe7f26264.json create mode 100644 change/@fluentui-react-native-chip-0bf89ea3-0a3c-4c65-b49c-00e95506c915.json create mode 100644 change/@fluentui-react-native-composition-a9eb219a-c559-4b1b-ab34-de58c5fc3d58.json create mode 100644 change/@fluentui-react-native-contextual-menu-c5120e6c-8139-437a-a1fb-5698b9b299f3.json create mode 100644 change/@fluentui-react-native-default-theme-65a065b1-4a5b-4186-a7b1-86d42cd1e025.json create mode 100644 change/@fluentui-react-native-divider-d449d42d-f13f-411c-a5e7-e9d3c282cbae.json create mode 100644 change/@fluentui-react-native-drawer-e8f78276-becb-46db-aebd-b7b55f73e6de.json create mode 100644 change/@fluentui-react-native-dropdown-402b0e63-1957-4bec-9b8a-6079ef27de58.json create mode 100644 change/@fluentui-react-native-e2e-testing-19026da6-ccd7-4af7-ae27-83adb152411a.json create mode 100644 change/@fluentui-react-native-experimental-activity-indicator-404227fa-583e-40fa-8371-4cc7f087a569.json create mode 100644 change/@fluentui-react-native-experimental-appearance-additions-c707d1b5-4a36-4988-ba4a-68ab1d077a0a.json create mode 100644 change/@fluentui-react-native-experimental-avatar-990af5f9-03a4-4027-a1a5-dbd6202741d1.json create mode 100644 change/@fluentui-react-native-experimental-checkbox-e64bc0d8-e1b8-431b-b861-d8d7621a3a5e.json create mode 100644 change/@fluentui-react-native-experimental-expander-c8a7fd4f-32bb-4dfb-abd4-75d974c68c4b.json create mode 100644 change/@fluentui-react-native-experimental-menu-button-78a325f9-2829-40a7-bfab-50b571e7d2ec.json create mode 100644 change/@fluentui-react-native-experimental-native-date-picker-8e6482e8-23dc-450e-8445-ef9a0342b01d.json create mode 100644 change/@fluentui-react-native-experimental-native-font-metrics-c163f01d-a9d3-496d-adfb-a467b2e0fdcc.json create mode 100644 change/@fluentui-react-native-experimental-shadow-827d1658-3f3d-46f7-9317-40ef1f6cb177.json create mode 100644 change/@fluentui-react-native-experimental-shimmer-e0820723-6247-4af2-9c65-0fd7e4f4d557.json create mode 100644 change/@fluentui-react-native-focus-trap-zone-6ccccf25-3f23-486c-ac40-48aaa9d46014.json create mode 100644 change/@fluentui-react-native-focus-zone-a705ddb9-b64d-4b88-93dc-2803eb305ffb.json create mode 100644 change/@fluentui-react-native-framework-base-fad9cfc2-b079-4fd8-b92e-90390d07d193.json create mode 100644 change/@fluentui-react-native-framework-cf80979b-fc44-4a50-a8ed-9b26c285ae48.json create mode 100644 change/@fluentui-react-native-icon-e4449df0-8c26-4c9f-9702-2b12045e9ce5.json create mode 100644 change/@fluentui-react-native-immutable-merge-b2ebba17-e1b5-4a3f-b11b-485ef91ddd4f.json create mode 100644 change/@fluentui-react-native-input-366c88f0-999c-494b-8f86-de101ed27669.json create mode 100644 change/@fluentui-react-native-interactive-hooks-c25b0ba3-4d7b-42cd-bde1-6f5171e37c76.json create mode 100644 change/@fluentui-react-native-link-3ac29fca-fd3f-4476-8f89-dc2f16ad7dd8.json create mode 100644 change/@fluentui-react-native-memo-cache-a180df7f-6fa4-4ca2-88ca-d1d3689badcb.json create mode 100644 change/@fluentui-react-native-menu-77e5c48b-8be1-47f6-a793-e0bc188464df.json create mode 100644 change/@fluentui-react-native-menu-button-689a6d68-12b1-40e9-a0ef-b5a5424ab14d.json create mode 100644 change/@fluentui-react-native-merge-props-50aef0ab-b76f-4b9f-8b78-028003418a7a.json create mode 100644 change/@fluentui-react-native-notification-361a56a0-668b-40fc-8109-a85e84d4f643.json create mode 100644 change/@fluentui-react-native-overflow-56a7e3ab-18f1-432f-87b4-f4daf268a8da.json create mode 100644 change/@fluentui-react-native-persona-04cc88c5-e93d-4c7c-923a-77d216ffd7f2.json create mode 100644 change/@fluentui-react-native-persona-coin-0525eb0d-2958-48a2-a180-96f25866b668.json create mode 100644 change/@fluentui-react-native-popover-6e1b5572-ab76-4778-971f-d7832d8cc5c6.json create mode 100644 change/@fluentui-react-native-pressable-ff0e0baf-1529-4b57-85f2-61e5878369b3.json create mode 100644 change/@fluentui-react-native-radio-group-51a73be5-a95d-438b-9ce4-8ed9cc91df9b.json create mode 100644 change/@fluentui-react-native-separator-c2d5764f-6d34-4322-bc6b-2bb565c78b07.json create mode 100644 change/@fluentui-react-native-spinner-c6d6cfc7-f1d8-4746-b776-ae730cfd0758.json create mode 100644 change/@fluentui-react-native-stack-e2e08395-99ca-4521-8ae0-02e961c818a3.json create mode 100644 change/@fluentui-react-native-styling-utils-58e04a7d-3deb-42ba-bf02-dc3df56a1ae3.json create mode 100644 change/@fluentui-react-native-switch-ef5f9e52-ae82-44d7-8e17-f0efe7bd1e2e.json create mode 100644 change/@fluentui-react-native-tablist-d7a93043-7b6d-4a3f-8ac0-5fcc178857a6.json create mode 100644 change/@fluentui-react-native-tester-core-816a3aa4-11ac-405c-9fde-a6407ab2ddb9.json create mode 100644 change/@fluentui-react-native-tester-win32-81-f2ed981f-aaca-49e4-b073-3dcd02b30438.json create mode 100644 change/@fluentui-react-native-text-ead71389-3edb-4142-9f26-31f8a9f683e0.json create mode 100644 change/@fluentui-react-native-theme-25af8ebd-34c1-4782-806e-eb5167772b5a.json create mode 100644 change/@fluentui-react-native-theme-tokens-eb8c8a71-6768-4f07-89c1-73f1c2a324bf.json create mode 100644 change/@fluentui-react-native-theme-types-681eeee0-3aff-4e0c-a0d6-979454ae4a86.json create mode 100644 change/@fluentui-react-native-themed-stylesheet-d5525e89-fc43-416b-b7cc-5dfaecce9aa0.json create mode 100644 change/@fluentui-react-native-theming-utils-bfaf64a8-87c2-456c-86d4-0443592cfa36.json create mode 100644 change/@fluentui-react-native-tokens-30bd7576-fa7b-428c-aea8-5d1ce2589131.json create mode 100644 change/@fluentui-react-native-tooltip-92852859-b212-4c2e-a2be-76ce81c5f71b.json create mode 100644 change/@fluentui-react-native-use-slot-b8823bcb-4da6-4970-9c11-b0e8f674c465.json create mode 100644 change/@fluentui-react-native-use-slots-ec3a595e-ac3a-4199-81ca-c60e1ecc9f4e.json create mode 100644 change/@fluentui-react-native-use-styling-7ece5fef-1609-467e-a3ea-9a30f47f8b87.json create mode 100644 change/@fluentui-react-native-use-tokens-34e2b173-de30-4135-98aa-1abf0c2a887f.json create mode 100644 change/@fluentui-react-native-vibrancy-view-5e09f406-b8e8-4ca8-8299-cf9de0e11e5f.json create mode 100644 change/@fluentui-react-native-win32-theme-4e49f068-7d27-4704-a957-068c8c338813.json create mode 100644 change/@uifabricshared-foundation-composable-1dd80897-f8aa-47df-908d-be0ca4010cc6.json create mode 100644 change/@uifabricshared-foundation-compose-68cb5ecb-aca2-435f-913c-1726b2505839.json create mode 100644 change/@uifabricshared-foundation-settings-d1ad6be8-d5f7-4f4f-ab9b-9823f2a48d80.json create mode 100644 change/@uifabricshared-foundation-tokens-21182395-4783-496c-9f94-3cba180fb1ff.json create mode 100644 change/@uifabricshared-theme-registry-f197d4a7-7d9f-4a1d-b925-075a05d2d402.json create mode 100644 change/@uifabricshared-themed-settings-a0ef36e0-3eb2-4660-b521-7e72a0a00bea.json create mode 100644 change/@uifabricshared-theming-ramp-bd5a4f10-f029-4f26-a3c4-635f8eb648f7.json create mode 100644 change/@uifabricshared-theming-react-native-a36353c1-b8f6-43c4-a56f-c86a1de4fb78.json diff --git a/change/@fluentui-react-native-2c26d79b-1c84-4fe3-9444-633eda07a8b5.json b/change/@fluentui-react-native-2c26d79b-1c84-4fe3-9444-633eda07a8b5.json new file mode 100644 index 0000000000..fc0f172d49 --- /dev/null +++ b/change/@fluentui-react-native-2c26d79b-1c84-4fe3-9444-633eda07a8b5.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui/react-native", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-adapters-535f6f7c-d42d-4552-ab3f-95b794ac7228.json b/change/@fluentui-react-native-adapters-535f6f7c-d42d-4552-ab3f-95b794ac7228.json new file mode 100644 index 0000000000..9f234780f3 --- /dev/null +++ b/change/@fluentui-react-native-adapters-535f6f7c-d42d-4552-ab3f-95b794ac7228.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/adapters", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-android-theme-dbacb516-f688-4ade-b720-c057ccee3ee9.json b/change/@fluentui-react-native-android-theme-dbacb516-f688-4ade-b720-c057ccee3ee9.json new file mode 100644 index 0000000000..0129678711 --- /dev/null +++ b/change/@fluentui-react-native-android-theme-dbacb516-f688-4ade-b720-c057ccee3ee9.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/android-theme", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-apple-theme-990d6979-95b7-4ca4-84c2-edf581ccd4cb.json b/change/@fluentui-react-native-apple-theme-990d6979-95b7-4ca4-84c2-edf581ccd4cb.json new file mode 100644 index 0000000000..150493aafb --- /dev/null +++ b/change/@fluentui-react-native-apple-theme-990d6979-95b7-4ca4-84c2-edf581ccd4cb.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/apple-theme", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-avatar-f63a3580-59ab-4696-b0b0-e76cc15edd14.json b/change/@fluentui-react-native-avatar-f63a3580-59ab-4696-b0b0-e76cc15edd14.json new file mode 100644 index 0000000000..3dbd7ca346 --- /dev/null +++ b/change/@fluentui-react-native-avatar-f63a3580-59ab-4696-b0b0-e76cc15edd14.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/avatar", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-badge-651e11a1-380a-44ad-a6fe-27c142742b2d.json b/change/@fluentui-react-native-badge-651e11a1-380a-44ad-a6fe-27c142742b2d.json new file mode 100644 index 0000000000..3970de7620 --- /dev/null +++ b/change/@fluentui-react-native-badge-651e11a1-380a-44ad-a6fe-27c142742b2d.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/badge", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-button-f29821ab-6325-449e-b2ee-04d80162ab9e.json b/change/@fluentui-react-native-button-f29821ab-6325-449e-b2ee-04d80162ab9e.json new file mode 100644 index 0000000000..321978ee73 --- /dev/null +++ b/change/@fluentui-react-native-button-f29821ab-6325-449e-b2ee-04d80162ab9e.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/button", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-callout-710b62fc-eafb-49de-8768-2ac7c4c5a75a.json b/change/@fluentui-react-native-callout-710b62fc-eafb-49de-8768-2ac7c4c5a75a.json new file mode 100644 index 0000000000..a2bcc60eda --- /dev/null +++ b/change/@fluentui-react-native-callout-710b62fc-eafb-49de-8768-2ac7c4c5a75a.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/callout", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-checkbox-6bea647e-439a-4529-b9e6-78dfe7f26264.json b/change/@fluentui-react-native-checkbox-6bea647e-439a-4529-b9e6-78dfe7f26264.json new file mode 100644 index 0000000000..1929b7adb8 --- /dev/null +++ b/change/@fluentui-react-native-checkbox-6bea647e-439a-4529-b9e6-78dfe7f26264.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/checkbox", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-chip-0bf89ea3-0a3c-4c65-b49c-00e95506c915.json b/change/@fluentui-react-native-chip-0bf89ea3-0a3c-4c65-b49c-00e95506c915.json new file mode 100644 index 0000000000..2e168f898e --- /dev/null +++ b/change/@fluentui-react-native-chip-0bf89ea3-0a3c-4c65-b49c-00e95506c915.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/chip", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-composition-a9eb219a-c559-4b1b-ab34-de58c5fc3d58.json b/change/@fluentui-react-native-composition-a9eb219a-c559-4b1b-ab34-de58c5fc3d58.json new file mode 100644 index 0000000000..d11833b2f8 --- /dev/null +++ b/change/@fluentui-react-native-composition-a9eb219a-c559-4b1b-ab34-de58c5fc3d58.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/composition", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-contextual-menu-c5120e6c-8139-437a-a1fb-5698b9b299f3.json b/change/@fluentui-react-native-contextual-menu-c5120e6c-8139-437a-a1fb-5698b9b299f3.json new file mode 100644 index 0000000000..45db0ce79e --- /dev/null +++ b/change/@fluentui-react-native-contextual-menu-c5120e6c-8139-437a-a1fb-5698b9b299f3.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/contextual-menu", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-default-theme-65a065b1-4a5b-4186-a7b1-86d42cd1e025.json b/change/@fluentui-react-native-default-theme-65a065b1-4a5b-4186-a7b1-86d42cd1e025.json new file mode 100644 index 0000000000..67619e79aa --- /dev/null +++ b/change/@fluentui-react-native-default-theme-65a065b1-4a5b-4186-a7b1-86d42cd1e025.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/default-theme", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-divider-d449d42d-f13f-411c-a5e7-e9d3c282cbae.json b/change/@fluentui-react-native-divider-d449d42d-f13f-411c-a5e7-e9d3c282cbae.json new file mode 100644 index 0000000000..e5b6889c75 --- /dev/null +++ b/change/@fluentui-react-native-divider-d449d42d-f13f-411c-a5e7-e9d3c282cbae.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/divider", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-drawer-e8f78276-becb-46db-aebd-b7b55f73e6de.json b/change/@fluentui-react-native-drawer-e8f78276-becb-46db-aebd-b7b55f73e6de.json new file mode 100644 index 0000000000..bf9e4864ac --- /dev/null +++ b/change/@fluentui-react-native-drawer-e8f78276-becb-46db-aebd-b7b55f73e6de.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/drawer", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-dropdown-402b0e63-1957-4bec-9b8a-6079ef27de58.json b/change/@fluentui-react-native-dropdown-402b0e63-1957-4bec-9b8a-6079ef27de58.json new file mode 100644 index 0000000000..7cfc1a7e32 --- /dev/null +++ b/change/@fluentui-react-native-dropdown-402b0e63-1957-4bec-9b8a-6079ef27de58.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/dropdown", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-e2e-testing-19026da6-ccd7-4af7-ae27-83adb152411a.json b/change/@fluentui-react-native-e2e-testing-19026da6-ccd7-4af7-ae27-83adb152411a.json new file mode 100644 index 0000000000..f578a627e6 --- /dev/null +++ b/change/@fluentui-react-native-e2e-testing-19026da6-ccd7-4af7-ae27-83adb152411a.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/e2e-testing", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-experimental-activity-indicator-404227fa-583e-40fa-8371-4cc7f087a569.json b/change/@fluentui-react-native-experimental-activity-indicator-404227fa-583e-40fa-8371-4cc7f087a569.json new file mode 100644 index 0000000000..f30993de0f --- /dev/null +++ b/change/@fluentui-react-native-experimental-activity-indicator-404227fa-583e-40fa-8371-4cc7f087a569.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/experimental-activity-indicator", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-experimental-appearance-additions-c707d1b5-4a36-4988-ba4a-68ab1d077a0a.json b/change/@fluentui-react-native-experimental-appearance-additions-c707d1b5-4a36-4988-ba4a-68ab1d077a0a.json new file mode 100644 index 0000000000..ae19f271c9 --- /dev/null +++ b/change/@fluentui-react-native-experimental-appearance-additions-c707d1b5-4a36-4988-ba4a-68ab1d077a0a.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/experimental-appearance-additions", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-experimental-avatar-990af5f9-03a4-4027-a1a5-dbd6202741d1.json b/change/@fluentui-react-native-experimental-avatar-990af5f9-03a4-4027-a1a5-dbd6202741d1.json new file mode 100644 index 0000000000..0917c38a35 --- /dev/null +++ b/change/@fluentui-react-native-experimental-avatar-990af5f9-03a4-4027-a1a5-dbd6202741d1.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/experimental-avatar", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-experimental-checkbox-e64bc0d8-e1b8-431b-b861-d8d7621a3a5e.json b/change/@fluentui-react-native-experimental-checkbox-e64bc0d8-e1b8-431b-b861-d8d7621a3a5e.json new file mode 100644 index 0000000000..3f3438f7e7 --- /dev/null +++ b/change/@fluentui-react-native-experimental-checkbox-e64bc0d8-e1b8-431b-b861-d8d7621a3a5e.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/experimental-checkbox", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-experimental-expander-c8a7fd4f-32bb-4dfb-abd4-75d974c68c4b.json b/change/@fluentui-react-native-experimental-expander-c8a7fd4f-32bb-4dfb-abd4-75d974c68c4b.json new file mode 100644 index 0000000000..cd2585dc36 --- /dev/null +++ b/change/@fluentui-react-native-experimental-expander-c8a7fd4f-32bb-4dfb-abd4-75d974c68c4b.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/experimental-expander", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-experimental-menu-button-78a325f9-2829-40a7-bfab-50b571e7d2ec.json b/change/@fluentui-react-native-experimental-menu-button-78a325f9-2829-40a7-bfab-50b571e7d2ec.json new file mode 100644 index 0000000000..3fd9326666 --- /dev/null +++ b/change/@fluentui-react-native-experimental-menu-button-78a325f9-2829-40a7-bfab-50b571e7d2ec.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/experimental-menu-button", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-experimental-native-date-picker-8e6482e8-23dc-450e-8445-ef9a0342b01d.json b/change/@fluentui-react-native-experimental-native-date-picker-8e6482e8-23dc-450e-8445-ef9a0342b01d.json new file mode 100644 index 0000000000..4ab3812477 --- /dev/null +++ b/change/@fluentui-react-native-experimental-native-date-picker-8e6482e8-23dc-450e-8445-ef9a0342b01d.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/experimental-native-date-picker", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-experimental-native-font-metrics-c163f01d-a9d3-496d-adfb-a467b2e0fdcc.json b/change/@fluentui-react-native-experimental-native-font-metrics-c163f01d-a9d3-496d-adfb-a467b2e0fdcc.json new file mode 100644 index 0000000000..59d98ebc4a --- /dev/null +++ b/change/@fluentui-react-native-experimental-native-font-metrics-c163f01d-a9d3-496d-adfb-a467b2e0fdcc.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/experimental-native-font-metrics", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-experimental-shadow-827d1658-3f3d-46f7-9317-40ef1f6cb177.json b/change/@fluentui-react-native-experimental-shadow-827d1658-3f3d-46f7-9317-40ef1f6cb177.json new file mode 100644 index 0000000000..581e2ad66b --- /dev/null +++ b/change/@fluentui-react-native-experimental-shadow-827d1658-3f3d-46f7-9317-40ef1f6cb177.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/experimental-shadow", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-experimental-shimmer-e0820723-6247-4af2-9c65-0fd7e4f4d557.json b/change/@fluentui-react-native-experimental-shimmer-e0820723-6247-4af2-9c65-0fd7e4f4d557.json new file mode 100644 index 0000000000..2a4d52aa1c --- /dev/null +++ b/change/@fluentui-react-native-experimental-shimmer-e0820723-6247-4af2-9c65-0fd7e4f4d557.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/experimental-shimmer", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-focus-trap-zone-6ccccf25-3f23-486c-ac40-48aaa9d46014.json b/change/@fluentui-react-native-focus-trap-zone-6ccccf25-3f23-486c-ac40-48aaa9d46014.json new file mode 100644 index 0000000000..e13e8edb44 --- /dev/null +++ b/change/@fluentui-react-native-focus-trap-zone-6ccccf25-3f23-486c-ac40-48aaa9d46014.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/focus-trap-zone", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-focus-zone-a705ddb9-b64d-4b88-93dc-2803eb305ffb.json b/change/@fluentui-react-native-focus-zone-a705ddb9-b64d-4b88-93dc-2803eb305ffb.json new file mode 100644 index 0000000000..7fc033b58e --- /dev/null +++ b/change/@fluentui-react-native-focus-zone-a705ddb9-b64d-4b88-93dc-2803eb305ffb.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/focus-zone", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-framework-base-fad9cfc2-b079-4fd8-b92e-90390d07d193.json b/change/@fluentui-react-native-framework-base-fad9cfc2-b079-4fd8-b92e-90390d07d193.json new file mode 100644 index 0000000000..eb6ecaa45a --- /dev/null +++ b/change/@fluentui-react-native-framework-base-fad9cfc2-b079-4fd8-b92e-90390d07d193.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/framework-base", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-framework-cf80979b-fc44-4a50-a8ed-9b26c285ae48.json b/change/@fluentui-react-native-framework-cf80979b-fc44-4a50-a8ed-9b26c285ae48.json new file mode 100644 index 0000000000..e53ec7a585 --- /dev/null +++ b/change/@fluentui-react-native-framework-cf80979b-fc44-4a50-a8ed-9b26c285ae48.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/framework", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-icon-e4449df0-8c26-4c9f-9702-2b12045e9ce5.json b/change/@fluentui-react-native-icon-e4449df0-8c26-4c9f-9702-2b12045e9ce5.json new file mode 100644 index 0000000000..55749ca079 --- /dev/null +++ b/change/@fluentui-react-native-icon-e4449df0-8c26-4c9f-9702-2b12045e9ce5.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/icon", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-immutable-merge-b2ebba17-e1b5-4a3f-b11b-485ef91ddd4f.json b/change/@fluentui-react-native-immutable-merge-b2ebba17-e1b5-4a3f-b11b-485ef91ddd4f.json new file mode 100644 index 0000000000..dd0f70bc20 --- /dev/null +++ b/change/@fluentui-react-native-immutable-merge-b2ebba17-e1b5-4a3f-b11b-485ef91ddd4f.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/immutable-merge", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-input-366c88f0-999c-494b-8f86-de101ed27669.json b/change/@fluentui-react-native-input-366c88f0-999c-494b-8f86-de101ed27669.json new file mode 100644 index 0000000000..5194bbf460 --- /dev/null +++ b/change/@fluentui-react-native-input-366c88f0-999c-494b-8f86-de101ed27669.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/input", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-interactive-hooks-c25b0ba3-4d7b-42cd-bde1-6f5171e37c76.json b/change/@fluentui-react-native-interactive-hooks-c25b0ba3-4d7b-42cd-bde1-6f5171e37c76.json new file mode 100644 index 0000000000..b87f3fdef6 --- /dev/null +++ b/change/@fluentui-react-native-interactive-hooks-c25b0ba3-4d7b-42cd-bde1-6f5171e37c76.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/interactive-hooks", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-link-3ac29fca-fd3f-4476-8f89-dc2f16ad7dd8.json b/change/@fluentui-react-native-link-3ac29fca-fd3f-4476-8f89-dc2f16ad7dd8.json new file mode 100644 index 0000000000..40916743f1 --- /dev/null +++ b/change/@fluentui-react-native-link-3ac29fca-fd3f-4476-8f89-dc2f16ad7dd8.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/link", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-memo-cache-a180df7f-6fa4-4ca2-88ca-d1d3689badcb.json b/change/@fluentui-react-native-memo-cache-a180df7f-6fa4-4ca2-88ca-d1d3689badcb.json new file mode 100644 index 0000000000..45d72fbff6 --- /dev/null +++ b/change/@fluentui-react-native-memo-cache-a180df7f-6fa4-4ca2-88ca-d1d3689badcb.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/memo-cache", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-menu-77e5c48b-8be1-47f6-a793-e0bc188464df.json b/change/@fluentui-react-native-menu-77e5c48b-8be1-47f6-a793-e0bc188464df.json new file mode 100644 index 0000000000..3e9dffb516 --- /dev/null +++ b/change/@fluentui-react-native-menu-77e5c48b-8be1-47f6-a793-e0bc188464df.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/menu", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-menu-button-689a6d68-12b1-40e9-a0ef-b5a5424ab14d.json b/change/@fluentui-react-native-menu-button-689a6d68-12b1-40e9-a0ef-b5a5424ab14d.json new file mode 100644 index 0000000000..a222820114 --- /dev/null +++ b/change/@fluentui-react-native-menu-button-689a6d68-12b1-40e9-a0ef-b5a5424ab14d.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/menu-button", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-merge-props-50aef0ab-b76f-4b9f-8b78-028003418a7a.json b/change/@fluentui-react-native-merge-props-50aef0ab-b76f-4b9f-8b78-028003418a7a.json new file mode 100644 index 0000000000..2d6060ef93 --- /dev/null +++ b/change/@fluentui-react-native-merge-props-50aef0ab-b76f-4b9f-8b78-028003418a7a.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/merge-props", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-notification-361a56a0-668b-40fc-8109-a85e84d4f643.json b/change/@fluentui-react-native-notification-361a56a0-668b-40fc-8109-a85e84d4f643.json new file mode 100644 index 0000000000..63382e64bd --- /dev/null +++ b/change/@fluentui-react-native-notification-361a56a0-668b-40fc-8109-a85e84d4f643.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/notification", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-overflow-56a7e3ab-18f1-432f-87b4-f4daf268a8da.json b/change/@fluentui-react-native-overflow-56a7e3ab-18f1-432f-87b4-f4daf268a8da.json new file mode 100644 index 0000000000..fea003be28 --- /dev/null +++ b/change/@fluentui-react-native-overflow-56a7e3ab-18f1-432f-87b4-f4daf268a8da.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/overflow", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-persona-04cc88c5-e93d-4c7c-923a-77d216ffd7f2.json b/change/@fluentui-react-native-persona-04cc88c5-e93d-4c7c-923a-77d216ffd7f2.json new file mode 100644 index 0000000000..4bd668e06b --- /dev/null +++ b/change/@fluentui-react-native-persona-04cc88c5-e93d-4c7c-923a-77d216ffd7f2.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/persona", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-persona-coin-0525eb0d-2958-48a2-a180-96f25866b668.json b/change/@fluentui-react-native-persona-coin-0525eb0d-2958-48a2-a180-96f25866b668.json new file mode 100644 index 0000000000..c046158b8e --- /dev/null +++ b/change/@fluentui-react-native-persona-coin-0525eb0d-2958-48a2-a180-96f25866b668.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/persona-coin", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-popover-6e1b5572-ab76-4778-971f-d7832d8cc5c6.json b/change/@fluentui-react-native-popover-6e1b5572-ab76-4778-971f-d7832d8cc5c6.json new file mode 100644 index 0000000000..b0800ea58f --- /dev/null +++ b/change/@fluentui-react-native-popover-6e1b5572-ab76-4778-971f-d7832d8cc5c6.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/popover", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-pressable-ff0e0baf-1529-4b57-85f2-61e5878369b3.json b/change/@fluentui-react-native-pressable-ff0e0baf-1529-4b57-85f2-61e5878369b3.json new file mode 100644 index 0000000000..1bd1728810 --- /dev/null +++ b/change/@fluentui-react-native-pressable-ff0e0baf-1529-4b57-85f2-61e5878369b3.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/pressable", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-radio-group-51a73be5-a95d-438b-9ce4-8ed9cc91df9b.json b/change/@fluentui-react-native-radio-group-51a73be5-a95d-438b-9ce4-8ed9cc91df9b.json new file mode 100644 index 0000000000..c0fe2fbc73 --- /dev/null +++ b/change/@fluentui-react-native-radio-group-51a73be5-a95d-438b-9ce4-8ed9cc91df9b.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/radio-group", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-separator-c2d5764f-6d34-4322-bc6b-2bb565c78b07.json b/change/@fluentui-react-native-separator-c2d5764f-6d34-4322-bc6b-2bb565c78b07.json new file mode 100644 index 0000000000..9429c0039d --- /dev/null +++ b/change/@fluentui-react-native-separator-c2d5764f-6d34-4322-bc6b-2bb565c78b07.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/separator", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-spinner-c6d6cfc7-f1d8-4746-b776-ae730cfd0758.json b/change/@fluentui-react-native-spinner-c6d6cfc7-f1d8-4746-b776-ae730cfd0758.json new file mode 100644 index 0000000000..1c1a070ea1 --- /dev/null +++ b/change/@fluentui-react-native-spinner-c6d6cfc7-f1d8-4746-b776-ae730cfd0758.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/spinner", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-stack-e2e08395-99ca-4521-8ae0-02e961c818a3.json b/change/@fluentui-react-native-stack-e2e08395-99ca-4521-8ae0-02e961c818a3.json new file mode 100644 index 0000000000..301647848f --- /dev/null +++ b/change/@fluentui-react-native-stack-e2e08395-99ca-4521-8ae0-02e961c818a3.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/stack", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-styling-utils-58e04a7d-3deb-42ba-bf02-dc3df56a1ae3.json b/change/@fluentui-react-native-styling-utils-58e04a7d-3deb-42ba-bf02-dc3df56a1ae3.json new file mode 100644 index 0000000000..6a43de1da0 --- /dev/null +++ b/change/@fluentui-react-native-styling-utils-58e04a7d-3deb-42ba-bf02-dc3df56a1ae3.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/styling-utils", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-switch-ef5f9e52-ae82-44d7-8e17-f0efe7bd1e2e.json b/change/@fluentui-react-native-switch-ef5f9e52-ae82-44d7-8e17-f0efe7bd1e2e.json new file mode 100644 index 0000000000..78ae48f05a --- /dev/null +++ b/change/@fluentui-react-native-switch-ef5f9e52-ae82-44d7-8e17-f0efe7bd1e2e.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/switch", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-tablist-d7a93043-7b6d-4a3f-8ac0-5fcc178857a6.json b/change/@fluentui-react-native-tablist-d7a93043-7b6d-4a3f-8ac0-5fcc178857a6.json new file mode 100644 index 0000000000..ab8f9a4647 --- /dev/null +++ b/change/@fluentui-react-native-tablist-d7a93043-7b6d-4a3f-8ac0-5fcc178857a6.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/tablist", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-tester-core-816a3aa4-11ac-405c-9fde-a6407ab2ddb9.json b/change/@fluentui-react-native-tester-core-816a3aa4-11ac-405c-9fde-a6407ab2ddb9.json new file mode 100644 index 0000000000..b781f36f21 --- /dev/null +++ b/change/@fluentui-react-native-tester-core-816a3aa4-11ac-405c-9fde-a6407ab2ddb9.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/tester-core", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-tester-win32-81-f2ed981f-aaca-49e4-b073-3dcd02b30438.json b/change/@fluentui-react-native-tester-win32-81-f2ed981f-aaca-49e4-b073-3dcd02b30438.json new file mode 100644 index 0000000000..9142537f81 --- /dev/null +++ b/change/@fluentui-react-native-tester-win32-81-f2ed981f-aaca-49e4-b073-3dcd02b30438.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "add win32 test app for 0.81", + "packageName": "@fluentui-react-native/tester-win32-81", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-text-ead71389-3edb-4142-9f26-31f8a9f683e0.json b/change/@fluentui-react-native-text-ead71389-3edb-4142-9f26-31f8a9f683e0.json new file mode 100644 index 0000000000..1012a82001 --- /dev/null +++ b/change/@fluentui-react-native-text-ead71389-3edb-4142-9f26-31f8a9f683e0.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/text", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-theme-25af8ebd-34c1-4782-806e-eb5167772b5a.json b/change/@fluentui-react-native-theme-25af8ebd-34c1-4782-806e-eb5167772b5a.json new file mode 100644 index 0000000000..c38aa91a06 --- /dev/null +++ b/change/@fluentui-react-native-theme-25af8ebd-34c1-4782-806e-eb5167772b5a.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/theme", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-theme-tokens-eb8c8a71-6768-4f07-89c1-73f1c2a324bf.json b/change/@fluentui-react-native-theme-tokens-eb8c8a71-6768-4f07-89c1-73f1c2a324bf.json new file mode 100644 index 0000000000..e6afa4c1b5 --- /dev/null +++ b/change/@fluentui-react-native-theme-tokens-eb8c8a71-6768-4f07-89c1-73f1c2a324bf.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/theme-tokens", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-theme-types-681eeee0-3aff-4e0c-a0d6-979454ae4a86.json b/change/@fluentui-react-native-theme-types-681eeee0-3aff-4e0c-a0d6-979454ae4a86.json new file mode 100644 index 0000000000..18d06c9c13 --- /dev/null +++ b/change/@fluentui-react-native-theme-types-681eeee0-3aff-4e0c-a0d6-979454ae4a86.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/theme-types", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-themed-stylesheet-d5525e89-fc43-416b-b7cc-5dfaecce9aa0.json b/change/@fluentui-react-native-themed-stylesheet-d5525e89-fc43-416b-b7cc-5dfaecce9aa0.json new file mode 100644 index 0000000000..48fdc2e8c9 --- /dev/null +++ b/change/@fluentui-react-native-themed-stylesheet-d5525e89-fc43-416b-b7cc-5dfaecce9aa0.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/themed-stylesheet", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-theming-utils-bfaf64a8-87c2-456c-86d4-0443592cfa36.json b/change/@fluentui-react-native-theming-utils-bfaf64a8-87c2-456c-86d4-0443592cfa36.json new file mode 100644 index 0000000000..6713b43d49 --- /dev/null +++ b/change/@fluentui-react-native-theming-utils-bfaf64a8-87c2-456c-86d4-0443592cfa36.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/theming-utils", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-tokens-30bd7576-fa7b-428c-aea8-5d1ce2589131.json b/change/@fluentui-react-native-tokens-30bd7576-fa7b-428c-aea8-5d1ce2589131.json new file mode 100644 index 0000000000..1466bd41f0 --- /dev/null +++ b/change/@fluentui-react-native-tokens-30bd7576-fa7b-428c-aea8-5d1ce2589131.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/tokens", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-tooltip-92852859-b212-4c2e-a2be-76ce81c5f71b.json b/change/@fluentui-react-native-tooltip-92852859-b212-4c2e-a2be-76ce81c5f71b.json new file mode 100644 index 0000000000..8ae252cadb --- /dev/null +++ b/change/@fluentui-react-native-tooltip-92852859-b212-4c2e-a2be-76ce81c5f71b.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/tooltip", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-use-slot-b8823bcb-4da6-4970-9c11-b0e8f674c465.json b/change/@fluentui-react-native-use-slot-b8823bcb-4da6-4970-9c11-b0e8f674c465.json new file mode 100644 index 0000000000..4543d89af9 --- /dev/null +++ b/change/@fluentui-react-native-use-slot-b8823bcb-4da6-4970-9c11-b0e8f674c465.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/use-slot", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-use-slots-ec3a595e-ac3a-4199-81ca-c60e1ecc9f4e.json b/change/@fluentui-react-native-use-slots-ec3a595e-ac3a-4199-81ca-c60e1ecc9f4e.json new file mode 100644 index 0000000000..1ac8741da6 --- /dev/null +++ b/change/@fluentui-react-native-use-slots-ec3a595e-ac3a-4199-81ca-c60e1ecc9f4e.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/use-slots", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-use-styling-7ece5fef-1609-467e-a3ea-9a30f47f8b87.json b/change/@fluentui-react-native-use-styling-7ece5fef-1609-467e-a3ea-9a30f47f8b87.json new file mode 100644 index 0000000000..0230e95283 --- /dev/null +++ b/change/@fluentui-react-native-use-styling-7ece5fef-1609-467e-a3ea-9a30f47f8b87.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/use-styling", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-use-tokens-34e2b173-de30-4135-98aa-1abf0c2a887f.json b/change/@fluentui-react-native-use-tokens-34e2b173-de30-4135-98aa-1abf0c2a887f.json new file mode 100644 index 0000000000..e7ddd8328e --- /dev/null +++ b/change/@fluentui-react-native-use-tokens-34e2b173-de30-4135-98aa-1abf0c2a887f.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/use-tokens", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-vibrancy-view-5e09f406-b8e8-4ca8-8299-cf9de0e11e5f.json b/change/@fluentui-react-native-vibrancy-view-5e09f406-b8e8-4ca8-8299-cf9de0e11e5f.json new file mode 100644 index 0000000000..39f530df85 --- /dev/null +++ b/change/@fluentui-react-native-vibrancy-view-5e09f406-b8e8-4ca8-8299-cf9de0e11e5f.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/vibrancy-view", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-win32-theme-4e49f068-7d27-4704-a957-068c8c338813.json b/change/@fluentui-react-native-win32-theme-4e49f068-7d27-4704-a957-068c8c338813.json new file mode 100644 index 0000000000..41689ba066 --- /dev/null +++ b/change/@fluentui-react-native-win32-theme-4e49f068-7d27-4704-a957-068c8c338813.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@fluentui-react-native/win32-theme", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@uifabricshared-foundation-composable-1dd80897-f8aa-47df-908d-be0ca4010cc6.json b/change/@uifabricshared-foundation-composable-1dd80897-f8aa-47df-908d-be0ca4010cc6.json new file mode 100644 index 0000000000..f00e848e0c --- /dev/null +++ b/change/@uifabricshared-foundation-composable-1dd80897-f8aa-47df-908d-be0ca4010cc6.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@uifabricshared/foundation-composable", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@uifabricshared-foundation-compose-68cb5ecb-aca2-435f-913c-1726b2505839.json b/change/@uifabricshared-foundation-compose-68cb5ecb-aca2-435f-913c-1726b2505839.json new file mode 100644 index 0000000000..0959927791 --- /dev/null +++ b/change/@uifabricshared-foundation-compose-68cb5ecb-aca2-435f-913c-1726b2505839.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@uifabricshared/foundation-compose", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@uifabricshared-foundation-settings-d1ad6be8-d5f7-4f4f-ab9b-9823f2a48d80.json b/change/@uifabricshared-foundation-settings-d1ad6be8-d5f7-4f4f-ab9b-9823f2a48d80.json new file mode 100644 index 0000000000..2b863daf45 --- /dev/null +++ b/change/@uifabricshared-foundation-settings-d1ad6be8-d5f7-4f4f-ab9b-9823f2a48d80.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@uifabricshared/foundation-settings", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@uifabricshared-foundation-tokens-21182395-4783-496c-9f94-3cba180fb1ff.json b/change/@uifabricshared-foundation-tokens-21182395-4783-496c-9f94-3cba180fb1ff.json new file mode 100644 index 0000000000..164f1dfff0 --- /dev/null +++ b/change/@uifabricshared-foundation-tokens-21182395-4783-496c-9f94-3cba180fb1ff.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@uifabricshared/foundation-tokens", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@uifabricshared-theme-registry-f197d4a7-7d9f-4a1d-b925-075a05d2d402.json b/change/@uifabricshared-theme-registry-f197d4a7-7d9f-4a1d-b925-075a05d2d402.json new file mode 100644 index 0000000000..e9cc2ca27d --- /dev/null +++ b/change/@uifabricshared-theme-registry-f197d4a7-7d9f-4a1d-b925-075a05d2d402.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@uifabricshared/theme-registry", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@uifabricshared-themed-settings-a0ef36e0-3eb2-4660-b521-7e72a0a00bea.json b/change/@uifabricshared-themed-settings-a0ef36e0-3eb2-4660-b521-7e72a0a00bea.json new file mode 100644 index 0000000000..8e1851b3e0 --- /dev/null +++ b/change/@uifabricshared-themed-settings-a0ef36e0-3eb2-4660-b521-7e72a0a00bea.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@uifabricshared/themed-settings", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@uifabricshared-theming-ramp-bd5a4f10-f029-4f26-a3c4-635f8eb648f7.json b/change/@uifabricshared-theming-ramp-bd5a4f10-f029-4f26-a3c4-635f8eb648f7.json new file mode 100644 index 0000000000..9ab6621210 --- /dev/null +++ b/change/@uifabricshared-theming-ramp-bd5a4f10-f029-4f26-a3c4-635f8eb648f7.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@uifabricshared/theming-ramp", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@uifabricshared-theming-react-native-a36353c1-b8f6-43c4-a56f-c86a1de4fb78.json b/change/@uifabricshared-theming-react-native-a36353c1-b8f6-43c4-a56f-c86a1de4fb78.json new file mode 100644 index 0000000000..4edb318d32 --- /dev/null +++ b/change/@uifabricshared-theming-react-native-a36353c1-b8f6-43c4-a56f-c86a1de4fb78.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "add peer declarations for 0.78 and 0.81", + "packageName": "@uifabricshared/theming-react-native", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} From d39dfb290cefe7532ec66ac7b42a1af4de9bd36e Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Fri, 30 Jan 2026 13:41:50 -0800 Subject: [PATCH 14/29] fix bundling rn-win32 0.81 against furn --- .yarnrc.yml | 1 + apps/E2E/package.json | 3 +- apps/fluent-tester/metro.config.js | 4 +- apps/fluent-tester/package.json | 9 +- apps/tester-core/package.json | 6 +- .../TestComponents/Callout/CalloutTest.tsx | 4 +- apps/win32-81/metro.config.js | 45 +- apps/win32-81/package.json | 12 +- apps/win32/metro.config.js | 4 +- apps/win32/package.json | 10 +- packages/components/Callout/src/Callout.tsx | 14 +- .../components/Callout/src/Callout.types.ts | 37 +- .../src/CalloutNativeCommands.types.ts | 4 - .../src/CalloutNativeComponent.macos.ts | 11 + .../Callout/src/CalloutNativeComponent.ts | 63 +- .../src/CalloutNativeComponent.types.macos.ts | 31 + .../src/CalloutNativeComponent.types.ts | 31 + .../src/CalloutNativeComponent.win32.ts | 11 + .../src/MacOSCalloutNativeComponent.ts | 66 - packages/components/Callout/src/index.ts | 2 +- .../components/ContextualMenu/package.json | 2 +- .../src/FocusTrapZoneNativeComponent.ts | 6 +- .../FocusZone/src/FocusZoneNativeComponent.ts | 6 +- packages/configs/kit-config/furn-preset.ts | 5 + .../Avatar/src/AvatarNative.types.ts | 13 + .../Avatar/src/AvatarNativeComponent.ios.ts | 0 .../Avatar/src/AvatarNativeComponent.macos.ts | 5 + .../Avatar/src/AvatarNativeComponent.ts | 25 +- .../src/Win32ShimmerNativeComponent.ts | 6 +- ...2NativeAnimatedContainerNativeComponent.ts | 5 +- .../experimental/Tooltip/src/Tooltip.types.ts | 6 +- .../Tooltip/src/TooltipNativeComponent.ts | 7 +- .../src/TooltipNativeComponent.win32.ts | 6 + .../VibrancyView/src/VibrancyView.types.ts | 24 + .../src/VibrancyViewNativeComponent.macos.ts | 5 + .../src/VibrancyViewNativeComponent.ts | 36 +- packages/framework/framework/package.json | 2 +- packages/libraries/core/package.json | 2 +- yarn.lock | 2235 ++++------------- 39 files changed, 798 insertions(+), 1966 deletions(-) delete mode 100644 packages/components/Callout/src/CalloutNativeCommands.types.ts create mode 100644 packages/components/Callout/src/CalloutNativeComponent.macos.ts create mode 100644 packages/components/Callout/src/CalloutNativeComponent.types.macos.ts create mode 100644 packages/components/Callout/src/CalloutNativeComponent.types.ts create mode 100644 packages/components/Callout/src/CalloutNativeComponent.win32.ts delete mode 100644 packages/components/Callout/src/MacOSCalloutNativeComponent.ts create mode 100644 packages/experimental/Avatar/src/AvatarNative.types.ts create mode 100644 packages/experimental/Avatar/src/AvatarNativeComponent.ios.ts create mode 100644 packages/experimental/Avatar/src/AvatarNativeComponent.macos.ts create mode 100644 packages/experimental/Tooltip/src/TooltipNativeComponent.win32.ts create mode 100644 packages/experimental/VibrancyView/src/VibrancyViewNativeComponent.macos.ts diff --git a/.yarnrc.yml b/.yarnrc.yml index d77710c139..dc7aaf694c 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -40,6 +40,7 @@ catalog: cross-env: ^10.1.0 expect-webdriverio: ^5.6.1 knip: ^5.81.0 + 'oxc-resolver': '^11.17.0' rimraf: ^6.1.2 webdriverio: ^9.23.0 diff --git a/apps/E2E/package.json b/apps/E2E/package.json index 8ab6110ab6..d58d1d9564 100644 --- a/apps/E2E/package.json +++ b/apps/E2E/package.json @@ -51,7 +51,7 @@ "@fluentui-react-native/scripts": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", "@react-native/metro-babel-transformer": "^0.74.0", - "@rnx-kit/metro-config": "^2.0.0", + "@rnx-kit/metro-config": "catalog:", "@types/jasmine": "catalog:", "@types/node": "catalog:", "@types/react": "~18.2.0", @@ -109,7 +109,6 @@ "core-macos", "core-win32", "core-windows", - "metro-config", "metro-react-native-babel-transformer", "react", "tools-core" diff --git a/apps/fluent-tester/metro.config.js b/apps/fluent-tester/metro.config.js index 2d248c5e1f..c0f5df26cb 100644 --- a/apps/fluent-tester/metro.config.js +++ b/apps/fluent-tester/metro.config.js @@ -44,7 +44,9 @@ let config = makeMetroConfig({ resolver: { blockList, extraNodeModules, - resolveRequest: MetroSymlinksResolver(), + resolveRequest: MetroSymlinksResolver({ + resolver: 'oxc-resolver', + }), }, transformer: { // This transformer selects between the regular transformer and svg transformer depending on the file type diff --git a/apps/fluent-tester/package.json b/apps/fluent-tester/package.json index dc0fcac588..458b221834 100644 --- a/apps/fluent-tester/package.json +++ b/apps/fluent-tester/package.json @@ -80,9 +80,9 @@ "@react-native/babel-preset": "^0.74.0", "@react-native/metro-babel-transformer": "^0.74.0", "@react-native/metro-config": "^0.74.0", - "@rnx-kit/cli": "^0.18.14", - "@rnx-kit/metro-config": "^2.1.0", - "@rnx-kit/metro-resolver-symlinks": "^0.2.5", + "@rnx-kit/cli": "catalog:", + "@rnx-kit/metro-config": "catalog:", + "@rnx-kit/metro-resolver-symlinks": "catalog:", "@svgr/core": "^8.1.0", "@svgr/plugin-jsx": "^8.1.0", "@svgr/plugin-svgo": "^8.1.0", @@ -97,6 +97,7 @@ "expect-webdriverio": "catalog:", "flow-bin": "^0.113.0", "metro-config": "^0.80.3", + "oxc-resolver": "catalog:", "path-dirname": "^1.0.2", "react-native-svg-transformer": "^1.0.0", "react-native-test-app": "^3.9.2", @@ -176,7 +177,7 @@ "core-ios", "core-macos", "core-windows", - "metro-config", + "core/metro-config", "metro-react-native-babel-transformer", "react", "react-test-renderer", diff --git a/apps/tester-core/package.json b/apps/tester-core/package.json index e1e624f7f8..dc8df500b0 100644 --- a/apps/tester-core/package.json +++ b/apps/tester-core/package.json @@ -106,9 +106,9 @@ "@react-native/babel-preset": "^0.74.0", "@react-native/metro-babel-transformer": "^0.74.0", "@react-native/metro-config": "^0.74.0", - "@rnx-kit/cli": "^0.18.14", - "@rnx-kit/metro-config": "^2.1.0", - "@rnx-kit/metro-resolver-symlinks": "^0.2.5", + "@rnx-kit/cli": "catalog:", + "@rnx-kit/metro-config": "catalog:", + "@rnx-kit/metro-resolver-symlinks": "catalog:", "@types/jasmine": "catalog:", "@types/react": "~18.2.0", "@types/react-test-renderer": "^18.2.0", diff --git a/apps/tester-core/src/TestComponents/Callout/CalloutTest.tsx b/apps/tester-core/src/TestComponents/Callout/CalloutTest.tsx index fb7ec08c30..b048e2b230 100644 --- a/apps/tester-core/src/TestComponents/Callout/CalloutTest.tsx +++ b/apps/tester-core/src/TestComponents/Callout/CalloutTest.tsx @@ -172,13 +172,13 @@ const StandardCallout: React.FunctionComponent = () => { }, []); const onShiftFocusToCallout = React.useCallback(() => { - calloutRef?.current.focusWindow(); + calloutRef?.current.focusWindow(null); }, [calloutRef]); const onShiftFocusToCalloutButton = React.useCallback(() => { calloutButtonRef?.current?.focus?.(); }, [calloutButtonRef]); const onShiftFocusToPage = React.useCallback(() => { - calloutRef?.current.blurWindow(); + calloutRef?.current.blurWindow(null); }, [calloutRef]); const onRestoreFocusStandardCallout = React.useCallback( (restoreFocusEvent: RestoreFocusEvent) => { diff --git a/apps/win32-81/metro.config.js b/apps/win32-81/metro.config.js index 79dd8892bd..82c4b576cf 100644 --- a/apps/win32-81/metro.config.js +++ b/apps/win32-81/metro.config.js @@ -4,10 +4,12 @@ * * @format */ -// @ts-check const { exclusionList, makeMetroConfig, resolveUniqueModule } = require('@rnx-kit/metro-config'); const MetroSymlinksResolver = require('@rnx-kit/metro-resolver-symlinks'); const { getDefaultConfig } = require('metro-config'); +const { MetroSerializer } = require('@rnx-kit/metro-serializer-esbuild'); + +const { sourceExts, assetExts } = getDefaultConfig.getDefaultValues().resolver; const excludeMixins = []; const extraNodeModules = {}; @@ -18,26 +20,25 @@ function ensureUniqueModule(moduleName, excludeList, nodeModules) { } // build up the added excludes and extraNodeModules -['react-native-svg'].forEach((moduleName) => ensureUniqueModule(moduleName)); - -module.exports = async () => { - const { - resolver: { sourceExts, assetExts }, - } = await getDefaultConfig(__dirname); +['react-native-svg', '@office-iss/react-native-win32', 'react-native'].forEach((moduleName) => ensureUniqueModule(moduleName)); - return makeMetroConfig({ - resolver: { - assetExts: [...assetExts.filter((ext) => ext !== 'svg'), 'ttf', 'otf', 'png'], - blockList: exclusionList(excludeMixins), - extraNodeModules: { - ...extraNodeModules, - }, - sourceExts: [...sourceExts, 'svg'], - resolveRequest: MetroSymlinksResolver(), - }, - transformer: { - // This transformer selects between the regular transformer and svg transformer depending on the file type - babelTransformerPath: require.resolve('react-native-svg-transformer'), +module.exports = makeMetroConfig({ + resolver: { + assetExts: [...assetExts.filter((ext) => ext !== 'svg'), 'ttf', 'otf', 'png'], + blockList: exclusionList(excludeMixins), + extraNodeModules: { + ...extraNodeModules, }, - }); -}; + sourceExts: [...sourceExts, 'svg'], + resolveRequest: MetroSymlinksResolver({ + resolver: 'oxc-resolver', + }), + }, + serializer: { + customSerializer: MetroSerializer(), + }, + transformer: { + // This transformer selects between the regular transformer and svg transformer depending on the file type + babelTransformerPath: require.resolve('react-native-svg-transformer'), + }, +}); diff --git a/apps/win32-81/package.json b/apps/win32-81/package.json index 0c01d63ff2..db87cd4232 100644 --- a/apps/win32-81/package.json +++ b/apps/win32-81/package.json @@ -62,9 +62,16 @@ "@rnx-kit/cli": "catalog:", "@rnx-kit/metro-config": "catalog:", "@rnx-kit/metro-resolver-symlinks": "catalog:", + "@rnx-kit/metro-serializer": "^2.0.3", + "@rnx-kit/metro-serializer-esbuild": "^0.3.0", + "@rnx-kit/tools-react-native": "^2.3.2", "@types/react": "~19.1.0", "@types/react-test-renderer": "^19.1.0", - "metro-config": "^0.83.1", + "metro": "^0.83.1", + "metro-config": "0.83.1", + "metro-core": "^0.83.1", + "metro-runtime": "^0.83.1", + "oxc-resolver": "catalog:", "react-native-svg-transformer": "^1.0.0", "react-native-test-app": "^4.4.11", "react-test-renderer": "19.1.0", @@ -118,7 +125,10 @@ "community/cli", "core-win32", "core/metro-config", + "metro", + "metro-core", "metro-react-native-babel-transformer", + "metro-runtime", "react", "react-test-renderer", "svg", diff --git a/apps/win32/metro.config.js b/apps/win32/metro.config.js index 79dd8892bd..dec3c76783 100644 --- a/apps/win32/metro.config.js +++ b/apps/win32/metro.config.js @@ -33,7 +33,9 @@ module.exports = async () => { ...extraNodeModules, }, sourceExts: [...sourceExts, 'svg'], - resolveRequest: MetroSymlinksResolver(), + resolveRequest: MetroSymlinksResolver({ + resolver: 'oxc-resolver', + }), }, transformer: { // This transformer selects between the regular transformer and svg transformer depending on the file type diff --git a/apps/win32/package.json b/apps/win32/package.json index 983f8a1abc..7e2d69c392 100644 --- a/apps/win32/package.json +++ b/apps/win32/package.json @@ -59,12 +59,14 @@ "@react-native/metro-babel-transformer": "^0.74.0", "@react-native/metro-config": "^0.74.0", "@rnx-kit/babel-preset-metro-react-native": "catalog:", - "@rnx-kit/cli": "^0.18.14", - "@rnx-kit/metro-config": "^2.1.0", - "@rnx-kit/metro-resolver-symlinks": "^0.2.5", + "@rnx-kit/cli": "catalog:", + "@rnx-kit/metro-config": "catalog:", + "@rnx-kit/metro-resolver-symlinks": "catalog:", + "@rnx-kit/metro-serializer-esbuild": "^0.3.0", "@types/react": "~18.2.0", "@types/react-test-renderer": "^18.2.0", "metro-config": "^0.80.3", + "oxc-resolver": "catalog:", "react-native-svg-transformer": "^1.0.0", "react-native-test-app": "^3.9.2", "react-test-renderer": "18.2.0", @@ -117,7 +119,7 @@ "babel-preset-react-native", "community/cli", "core-win32", - "metro-config", + "core/metro-config", "metro-react-native-babel-transformer", "react", "react-test-renderer", diff --git a/packages/components/Callout/src/Callout.tsx b/packages/components/Callout/src/Callout.tsx index 25af50d957..3ce94c6fd4 100644 --- a/packages/components/Callout/src/Callout.tsx +++ b/packages/components/Callout/src/Callout.tsx @@ -5,8 +5,7 @@ */ import * as React from 'react'; -import { findNodeHandle, Platform } from 'react-native'; -import type { HostComponent } from 'react-native'; +import { findNodeHandle } from 'react-native'; import { backgroundColorTokens, borderTokens } from '@fluentui-react-native/tokens'; import type { IUseComposeStyling } from '@uifabricshared/foundation-compose'; @@ -16,16 +15,9 @@ import { mergeSettings } from '@uifabricshared/foundation-settings'; import { settings } from './Callout.settings'; import type { ICalloutProps, ICalloutSlotProps, ICalloutType } from './Callout.types'; import { calloutName } from './Callout.types'; -import type { NativeProps as CalloutNativeProps } from './CalloutNativeComponent'; -import CalloutNativeComponent from './CalloutNativeComponent'; -import type { NativeProps as FRNCalloutNativeProps } from './MacOSCalloutNativeComponent'; -import FRNCalloutNativeComponent from './MacOSCalloutNativeComponent'; -import { Commands } from './MacOSCalloutNativeComponent'; -const NativeCalloutView = Platform.select | HostComponent>({ - macos: FRNCalloutNativeComponent, - default: CalloutNativeComponent, // win32 -}); +import NativeCalloutView from './CalloutNativeComponent'; +import { Commands } from './CalloutNativeComponent'; export const Callout = compose({ displayName: calloutName, diff --git a/packages/components/Callout/src/Callout.types.ts b/packages/components/Callout/src/Callout.types.ts index 157d4655c2..af0990f12a 100644 --- a/packages/components/Callout/src/Callout.types.ts +++ b/packages/components/Callout/src/Callout.types.ts @@ -1,13 +1,15 @@ import type * as React from 'react'; -import type { KeyboardMetrics, ViewStyle } from 'react-native'; +import type { KeyboardMetrics, ViewStyle, ViewProps } from 'react-native'; import type { IViewProps } from '@fluentui-react-native/adapters'; import type { IBackgroundColorTokens, IBorderTokens } from '@fluentui-react-native/tokens'; import type { IRenderData } from '@uifabricshared/foundation-composable'; -import type { CalloutNativeCommands } from './CalloutNativeCommands.types'; +import type { CalloutNativeCommands } from './CalloutNativeComponent.types'; export const calloutName = 'Callout'; +import type { DirectEventHandler, Double, Int32 } from 'react-native/Libraries/Types/CodegenTypes'; + /** * Properties and Tokens for FluentUI React Native Callout */ @@ -225,3 +227,34 @@ export interface ICalloutType { slotProps: ICalloutSlotProps; tokens: ICalloutTokens; } + +type AnchorRect = { + screenX: Double; + screenY: Double; + width: Double; + height: Double; +}; + +/** + * Shared native props specific to Callout native component + */ +export interface NativePropsBase extends ViewProps { + accessibilityLabel?: string; + accessibilityOnShowAnnouncement?: string; + anchorRect?: AnchorRect; + + dismissBehaviors?: string[]; + doNotTakePointerCapture?: boolean; + focusable?: boolean; + isBeakVisible?: boolean; + maxHeight?: Int32; + maxWidth?: Int32; + setInitialFocus?: boolean; + + // targetAnchor?: string; // Win32 only Callout can target an anchor registered in the anchor registry // Can be a node id or an anchor ID - This need to be reworked as Mixed types are not supported going forward + testID?: string; + + onRestoreFocus?: DirectEventHandler<{ target: Int32; containsFocus: boolean }>; + onDismiss?: DirectEventHandler<{ target: Int32 }>; + onShow?: DirectEventHandler<{ target: Int32 }>; +} diff --git a/packages/components/Callout/src/CalloutNativeCommands.types.ts b/packages/components/Callout/src/CalloutNativeCommands.types.ts deleted file mode 100644 index b346029b6f..0000000000 --- a/packages/components/Callout/src/CalloutNativeCommands.types.ts +++ /dev/null @@ -1,4 +0,0 @@ -export interface CalloutNativeCommands { - focusWindow(): void; - blurWindow(): void; -} diff --git a/packages/components/Callout/src/CalloutNativeComponent.macos.ts b/packages/components/Callout/src/CalloutNativeComponent.macos.ts new file mode 100644 index 0000000000..7ccf9123ef --- /dev/null +++ b/packages/components/Callout/src/CalloutNativeComponent.macos.ts @@ -0,0 +1,11 @@ +import codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands'; +import { requireNativeComponent } from 'react-native'; + +import type { NativeProps, CalloutComponentType, CalloutNativeCommands } from './CalloutNativeComponent.types.macos'; + +export const Commands: CalloutNativeCommands = codegenNativeCommands({ + supportedCommands: ['blurWindow', 'focusWindow'], +}); + +// no fabric for Win32, just use requireNativeComponent +export default requireNativeComponent('RCTCallout') as CalloutComponentType; diff --git a/packages/components/Callout/src/CalloutNativeComponent.ts b/packages/components/Callout/src/CalloutNativeComponent.ts index a0a2c91124..90da7721f3 100644 --- a/packages/components/Callout/src/CalloutNativeComponent.ts +++ b/packages/components/Callout/src/CalloutNativeComponent.ts @@ -1,68 +1,7 @@ -/** - * Copyright (c) Microsoft Corporation. - * Licensed under the MIT License. - * @format - */ - -import type { HostComponent, ViewProps } from 'react-native'; - -import type { WithDefault, DirectEventHandler, Double, Int32 } from 'react-native/Libraries/Types/CodegenTypes'; import codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands'; import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent'; -import type { UnsafeMixed } from './codegenTypes'; -// Should be: -// import type {UnsafeMixed} from 'react-native/Libraries/Types/CodegenTypes'; - -type AnchorRect = { - screenX: Double; - screenY: Double; - width: Double; - height: Double; -}; - -export interface NativeProps extends ViewProps { - accessibilityLabel?: string; - accessibilityOnShowAnnouncement?: string; - anchorRect?: AnchorRect; - directionalHint?: WithDefault< - | 'leftTopEdge' - | 'leftCenter' - | 'leftBottomEdge' - | 'topLeftEdge' - | 'topAutoEdge' - | 'topCenter' - | 'topRightEdge' - | 'rightTopEdge' - | 'rightCenter' - | 'rightBottomEdge' - | 'bottonLeftEdge' - | 'bottomAutoEdge' - | 'bottomCenter' - | 'bottomRightEdge', - 'bottonLeftEdge' - >; - dismissBehaviors?: string[]; - doNotTakePointerCapture?: boolean; - focusable?: boolean; - isBeakVisible?: boolean; - maxHeight?: Int32; - maxWidth?: Int32; - setInitialFocus?: boolean; - target?: UnsafeMixed; - // targetAnchor?: string; // Win32 only Callout can target an anchor registered in the anchor registry // Can be a node id or an anchor ID - This need to be reworked as Mixed types are not supported going forward - testID?: string; - - onRestoreFocus?: DirectEventHandler<{ target: Int32; containsFocus: boolean }>; - onDismiss?: DirectEventHandler<{ target: Int32 }>; - onShow?: DirectEventHandler<{ target: Int32 }>; -} - -export type CalloutComponentType = HostComponent; -export interface CalloutNativeCommands { - focusWindow: (viewRef: React.ElementRef) => void; - blurWindow: (viewRef: React.ElementRef) => void; -} +import type { NativeProps, CalloutComponentType, CalloutNativeCommands } from './CalloutNativeComponent.types'; export const Commands: CalloutNativeCommands = codegenNativeCommands({ supportedCommands: ['blurWindow', 'focusWindow'], diff --git a/packages/components/Callout/src/CalloutNativeComponent.types.macos.ts b/packages/components/Callout/src/CalloutNativeComponent.types.macos.ts new file mode 100644 index 0000000000..9eda89be10 --- /dev/null +++ b/packages/components/Callout/src/CalloutNativeComponent.types.macos.ts @@ -0,0 +1,31 @@ +import type { HostComponent } from 'react-native'; +import type { WithDefault, Int32 } from 'react-native/Libraries/Types/CodegenTypes'; +import type { NativePropsBase } from './Callout.types'; + +export interface NativeProps extends NativePropsBase { + directionalHint?: WithDefault< + | 'leftTopEdge' + | 'leftCenter' + | 'leftBottomEdge' + | 'topLeftEdge' + | 'topAutoEdge' + | 'topCenter' + | 'topRightEdge' + | 'rightTopEdge' + | 'rightCenter' + | 'rightBottomEdge' + | 'bottonLeftEdge' + | 'bottomAutoEdge' + | 'bottomCenter' + | 'bottomRightEdge', + 'topLeftEdge' + >; + target?: Int32; +} + +// making these explicit as codegen can't always handle complex typescript types and fails silently +export type CalloutComponentType = HostComponent; +export type CalloutNativeCommands = { + focusWindow: (viewRef: React.ElementRef) => void; + blurWindow: (viewRef: React.ElementRef) => void; +}; diff --git a/packages/components/Callout/src/CalloutNativeComponent.types.ts b/packages/components/Callout/src/CalloutNativeComponent.types.ts new file mode 100644 index 0000000000..f690006bb8 --- /dev/null +++ b/packages/components/Callout/src/CalloutNativeComponent.types.ts @@ -0,0 +1,31 @@ +import type { HostComponent } from 'react-native'; +import type { WithDefault } from 'react-native/Libraries/Types/CodegenTypes'; +import type { UnsafeMixed } from './codegenTypes'; +import type { NativePropsBase } from './Callout.types'; + +export interface NativeProps extends NativePropsBase { + directionalHint?: WithDefault< + | 'leftTopEdge' + | 'leftCenter' + | 'leftBottomEdge' + | 'topLeftEdge' + | 'topAutoEdge' + | 'topCenter' + | 'topRightEdge' + | 'rightTopEdge' + | 'rightCenter' + | 'rightBottomEdge' + | 'bottonLeftEdge' + | 'bottomAutoEdge' + | 'bottomCenter' + | 'bottomRightEdge', + 'bottonLeftEdge' + >; + target?: UnsafeMixed; +} + +export type CalloutComponentType = HostComponent; +export type CalloutNativeCommands = { + focusWindow: (viewRef: React.ElementRef) => void; + blurWindow: (viewRef: React.ElementRef) => void; +}; diff --git a/packages/components/Callout/src/CalloutNativeComponent.win32.ts b/packages/components/Callout/src/CalloutNativeComponent.win32.ts new file mode 100644 index 0000000000..8f7e9ed540 --- /dev/null +++ b/packages/components/Callout/src/CalloutNativeComponent.win32.ts @@ -0,0 +1,11 @@ +import codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands'; +import { requireNativeComponent } from 'react-native'; + +import type { NativeProps, CalloutComponentType, CalloutNativeCommands } from './CalloutNativeComponent.types'; + +export const Commands: CalloutNativeCommands = codegenNativeCommands({ + supportedCommands: ['blurWindow', 'focusWindow'], +}); + +// no fabric for Win32, just use requireNativeComponent +export default requireNativeComponent('RCTCallout') as CalloutComponentType; diff --git a/packages/components/Callout/src/MacOSCalloutNativeComponent.ts b/packages/components/Callout/src/MacOSCalloutNativeComponent.ts deleted file mode 100644 index 29fa539888..0000000000 --- a/packages/components/Callout/src/MacOSCalloutNativeComponent.ts +++ /dev/null @@ -1,66 +0,0 @@ -/** - * Copyright (c) Microsoft Corporation. - * Licensed under the MIT License. - * @format - */ - -import type { HostComponent, ViewProps } from 'react-native'; - -import type { DirectEventHandler, Double, Int32, WithDefault } from 'react-native/Libraries/Types/CodegenTypes'; -import codegenNativeCommands from 'react-native/Libraries/Utilities/codegenNativeCommands'; -import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent'; - -type AnchorRect = { - screenX: Double; - screenY: Double; - width: Double; - height: Double; -}; - -export interface NativeProps extends ViewProps { - accessibilityLabel?: string; - accessibilityOnShowAnnouncement?: string; - anchorRect?: AnchorRect; - directionalHint?: WithDefault< - | 'leftTopEdge' - | 'leftCenter' - | 'leftBottomEdge' - | 'topLeftEdge' - | 'topAutoEdge' - | 'topCenter' - | 'topRightEdge' - | 'rightTopEdge' - | 'rightCenter' - | 'rightBottomEdge' - | 'bottonLeftEdge' - | 'bottomAutoEdge' - | 'bottomCenter' - | 'bottomRightEdge', - 'topLeftEdge' - >; - dismissBehaviors?: string[]; - doNotTakePointerCapture?: boolean; - focusable?: boolean; - isBeakVisible?: boolean; - maxHeight?: Int32; - maxWidth?: Int32; - setInitialFocus?: boolean; - target?: Int32; - testID?: string; - - onRestoreFocus?: DirectEventHandler<{ target: Int32; containsFocus: boolean }>; - onDismiss?: DirectEventHandler<{ target: Int32 }>; - onShow?: DirectEventHandler<{ target: Int32 }>; -} - -export type CalloutComponentType = HostComponent; -export interface CalloutNativeCommands { - focusWindow: (viewRef: React.ElementRef) => void; - blurWindow: (viewRef: React.ElementRef) => void; -} - -export const Commands: CalloutNativeCommands = codegenNativeCommands({ - supportedCommands: ['blurWindow', 'focusWindow'], -}); - -export default codegenNativeComponent('FRNCallout') as CalloutComponentType; diff --git a/packages/components/Callout/src/index.ts b/packages/components/Callout/src/index.ts index 8efead9e0f..26a47fc1ff 100644 --- a/packages/components/Callout/src/index.ts +++ b/packages/components/Callout/src/index.ts @@ -9,5 +9,5 @@ export type { ICalloutType, RestoreFocusEvent, } from './Callout.types'; -export type { CalloutNativeCommands } from './CalloutNativeCommands.types'; +export type { CalloutNativeCommands } from './CalloutNativeComponent.types'; export { Callout } from './Callout'; diff --git a/packages/components/ContextualMenu/package.json b/packages/components/ContextualMenu/package.json index 6b8e0de01e..9146dad15d 100644 --- a/packages/components/ContextualMenu/package.json +++ b/packages/components/ContextualMenu/package.json @@ -97,7 +97,7 @@ "core-ios", "core-macos", "core-windows", - "metro-config", + "core/metro-config", "react", "react-test-renderer", "svg", diff --git a/packages/components/FocusTrapZone/src/FocusTrapZoneNativeComponent.ts b/packages/components/FocusTrapZone/src/FocusTrapZoneNativeComponent.ts index 13f43a3208..b19bdf23e0 100644 --- a/packages/components/FocusTrapZone/src/FocusTrapZoneNativeComponent.ts +++ b/packages/components/FocusTrapZone/src/FocusTrapZoneNativeComponent.ts @@ -4,9 +4,7 @@ * @format */ -import type { HostComponent, ViewProps } from 'react-native'; - -import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent'; +import { requireNativeComponent, type HostComponent, type ViewProps } from 'react-native'; export interface NativeProps extends ViewProps { /** @@ -38,4 +36,4 @@ export interface NativeProps extends ViewProps { forceFocusInsideTrap?: boolean; } -export default codegenNativeComponent('RCTFocusTrapZone') as HostComponent; +export default requireNativeComponent('RCTFocusTrapZone') as HostComponent; diff --git a/packages/components/FocusZone/src/FocusZoneNativeComponent.ts b/packages/components/FocusZone/src/FocusZoneNativeComponent.ts index 9b3f177c2b..398bca1823 100644 --- a/packages/components/FocusZone/src/FocusZoneNativeComponent.ts +++ b/packages/components/FocusZone/src/FocusZoneNativeComponent.ts @@ -4,10 +4,10 @@ * @format */ -import type { HostComponent, ViewProps } from 'react-native'; +import type { ViewProps } from 'react-native'; import type { WithDefault } from 'react-native/Libraries/Types/CodegenTypes'; -import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent'; +import { requireNativeComponent } from 'react-native'; import type { UnsafeMixed } from './codegenTypes'; // Should be: @@ -23,4 +23,4 @@ export interface NativeProps extends ViewProps { isTabNavigation?: boolean; } -export default codegenNativeComponent('RCTFocusZone') as HostComponent; +export default requireNativeComponent('RCTFocusZone'); diff --git a/packages/configs/kit-config/furn-preset.ts b/packages/configs/kit-config/furn-preset.ts index ac9761aec5..f4514f2754 100644 --- a/packages/configs/kit-config/furn-preset.ts +++ b/packages/configs/kit-config/furn-preset.ts @@ -122,6 +122,11 @@ function formFurnPreset(rnPreset: VersionPreset, _version: number): VersionPrese for (const cap of Object.keys(newPreset)) { const pkgEntry = newPreset[cap] as Package; if (pkgEntry) { + // patch metro/metro-core/etc packages to not allow progressing beyond 83.1 because + // of serializer incompatibility + if (cap.startsWith('metro') && pkgEntry.version.startsWith('^83.1')) { + pkgEntry.version = pkgEntry.version.replace('^83.1', '83.1'); + } // add dev-only capability if this is a core capability const devCap = toDevCapability(cap); if (cap !== devCap && !pkgEntry.devOnly) { diff --git a/packages/experimental/Avatar/src/AvatarNative.types.ts b/packages/experimental/Avatar/src/AvatarNative.types.ts new file mode 100644 index 0000000000..4dbfd51fbd --- /dev/null +++ b/packages/experimental/Avatar/src/AvatarNative.types.ts @@ -0,0 +1,13 @@ +import type { ColorValue, ViewProps } from 'react-native'; + +import type { WithDefault } from 'react-native/Libraries/Types/CodegenTypes'; + +import type { ImageSource } from './codegenTypes'; + +export interface NativeProps extends ViewProps { + primaryText?: string; + secondaryText?: string; + imageSource?: ImageSource; + backgroundColor?: ColorValue; + size?: WithDefault<'size16' | 'size20' | 'size24' | 'size32' | 'size40' | 'size56' | 'size72', undefined>; +} diff --git a/packages/experimental/Avatar/src/AvatarNativeComponent.ios.ts b/packages/experimental/Avatar/src/AvatarNativeComponent.ios.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/experimental/Avatar/src/AvatarNativeComponent.macos.ts b/packages/experimental/Avatar/src/AvatarNativeComponent.macos.ts new file mode 100644 index 0000000000..7ead367b2e --- /dev/null +++ b/packages/experimental/Avatar/src/AvatarNativeComponent.macos.ts @@ -0,0 +1,5 @@ +import type { HostComponent } from 'react-native'; +import type { NativeProps } from './AvatarNative.types'; +import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent'; + +export default codegenNativeComponent('FRNAvatarView') as HostComponent; diff --git a/packages/experimental/Avatar/src/AvatarNativeComponent.ts b/packages/experimental/Avatar/src/AvatarNativeComponent.ts index 37a0f376a9..7f04c61c81 100644 --- a/packages/experimental/Avatar/src/AvatarNativeComponent.ts +++ b/packages/experimental/Avatar/src/AvatarNativeComponent.ts @@ -1,22 +1,5 @@ -/** - * Copyright (c) Microsoft Corporation. - * Licensed under the MIT License. - * @format - */ +import type { HostComponent } from 'react-native'; +import type { NativeProps } from './AvatarNative.types'; +import { requireNativeComponent } from 'react-native'; -import type { ColorValue, HostComponent, ViewProps } from 'react-native'; - -import type { WithDefault } from 'react-native/Libraries/Types/CodegenTypes'; -import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent'; - -import type { ImageSource } from './codegenTypes'; - -export interface NativeProps extends ViewProps { - primaryText?: string; - secondaryText?: string; - imageSource?: ImageSource; - backgroundColor?: ColorValue; - size?: WithDefault<'size16' | 'size20' | 'size24' | 'size32' | 'size40' | 'size56' | 'size72', undefined>; -} - -export default codegenNativeComponent('FRNAvatarView') as HostComponent; +export default requireNativeComponent('FRNAvatarView') as HostComponent; diff --git a/packages/experimental/Shimmer/src/Win32ShimmerNativeComponent.ts b/packages/experimental/Shimmer/src/Win32ShimmerNativeComponent.ts index 291cec6dda..5493684a0e 100644 --- a/packages/experimental/Shimmer/src/Win32ShimmerNativeComponent.ts +++ b/packages/experimental/Shimmer/src/Win32ShimmerNativeComponent.ts @@ -4,14 +4,14 @@ * @format */ -import type { HostComponent, ViewProps } from 'react-native'; +import type { ViewProps } from 'react-native'; import type { Double } from 'react-native/Libraries/Types/CodegenTypes'; -import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent'; +import { requireNativeComponent } from 'react-native'; export interface NativeProps extends ViewProps { delay?: Double; duration?: Double; } -export default codegenNativeComponent('RCTNativeAnimatedShimmer') as HostComponent; +export default requireNativeComponent('RCTNativeAnimatedShimmer'); diff --git a/packages/experimental/Spinner/src/Win32NativeAnimatedContainerNativeComponent.ts b/packages/experimental/Spinner/src/Win32NativeAnimatedContainerNativeComponent.ts index 70e6f337b1..2e0874d9aa 100644 --- a/packages/experimental/Spinner/src/Win32NativeAnimatedContainerNativeComponent.ts +++ b/packages/experimental/Spinner/src/Win32NativeAnimatedContainerNativeComponent.ts @@ -4,10 +4,9 @@ * @format */ -import type { HostComponent, ViewProps } from 'react-native'; +import { requireNativeComponent, type HostComponent, type ViewProps } from 'react-native'; import type { Double } from 'react-native/Libraries/Types/CodegenTypes'; -import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent'; export interface NativeProps extends ViewProps { delay?: Double; @@ -15,4 +14,4 @@ export interface NativeProps extends ViewProps { nativeAnimationClass?: string; } -export default codegenNativeComponent('RCTNativeAnimatedContainer') as HostComponent; +export default requireNativeComponent('RCTNativeAnimatedContainer') as HostComponent; diff --git a/packages/experimental/Tooltip/src/Tooltip.types.ts b/packages/experimental/Tooltip/src/Tooltip.types.ts index ea1b70ff42..3c69b02686 100644 --- a/packages/experimental/Tooltip/src/Tooltip.types.ts +++ b/packages/experimental/Tooltip/src/Tooltip.types.ts @@ -1,5 +1,5 @@ import type * as React from 'react'; -import type { ViewStyle } from 'react-native'; +import type { ViewStyle, ViewProps } from 'react-native'; import type { DirectionalHint } from '@fluentui-react-native/callout'; @@ -52,3 +52,7 @@ export interface TooltipType { props: TooltipProps; slotProps: TooltipSlotProps; } + +export interface NativeProps extends ViewProps { + content?: string; +} diff --git a/packages/experimental/Tooltip/src/TooltipNativeComponent.ts b/packages/experimental/Tooltip/src/TooltipNativeComponent.ts index 0ff09320d0..dc1ff03199 100644 --- a/packages/experimental/Tooltip/src/TooltipNativeComponent.ts +++ b/packages/experimental/Tooltip/src/TooltipNativeComponent.ts @@ -4,12 +4,9 @@ * @format */ -import type { HostComponent, ViewProps } from 'react-native'; +import type { HostComponent } from 'react-native'; +import type { NativeProps } from './Tooltip.types'; import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent'; -export interface NativeProps extends ViewProps { - content?: string; -} - export default codegenNativeComponent('RCTTooltip') as HostComponent; diff --git a/packages/experimental/Tooltip/src/TooltipNativeComponent.win32.ts b/packages/experimental/Tooltip/src/TooltipNativeComponent.win32.ts new file mode 100644 index 0000000000..29d34186eb --- /dev/null +++ b/packages/experimental/Tooltip/src/TooltipNativeComponent.win32.ts @@ -0,0 +1,6 @@ +import type { HostComponent } from 'react-native'; +import type { NativeProps } from './Tooltip.types'; + +import { requireNativeComponent } from 'react-native'; + +export default requireNativeComponent('RCTTooltip') as HostComponent; diff --git a/packages/experimental/VibrancyView/src/VibrancyView.types.ts b/packages/experimental/VibrancyView/src/VibrancyView.types.ts index f1e8473dca..bddcaf89bb 100644 --- a/packages/experimental/VibrancyView/src/VibrancyView.types.ts +++ b/packages/experimental/VibrancyView/src/VibrancyView.types.ts @@ -1,4 +1,6 @@ import type { IViewProps } from '@fluentui-react-native/adapters'; +import type { WithDefault } from 'react-native/Libraries/Types/CodegenTypes'; +import type { ViewProps } from 'react-native'; export type Material = | 'titlebar' @@ -16,6 +18,28 @@ export type Material = | 'underWindowBackground' | 'underPageBackground'; +export interface NativeProps extends ViewProps { + material?: WithDefault< + | 'titlebar' + | 'selection' + | 'menu' + | 'popover' + | 'sidebar' + | 'headerview' + | 'sheet' + | 'windowbackground' + | 'hudWindow' + | 'fullScreenUI' + | 'toolTip' + | 'contentBackground' + | 'underWindowBackground' + | 'underPageBackground', + 'menu' + >; + blendingMode?: WithDefault<'behindWindow' | 'withinWindow', 'behindWindow'>; + state?: WithDefault<'followsWindowActiveState' | 'active' | 'inactive', 'followsWindowActiveState'>; +} + export type BlendingMode = 'behindWindow' | 'withinWindow'; export type State = 'followsWindowActiveState' | 'active' | 'inactive'; diff --git a/packages/experimental/VibrancyView/src/VibrancyViewNativeComponent.macos.ts b/packages/experimental/VibrancyView/src/VibrancyViewNativeComponent.macos.ts new file mode 100644 index 0000000000..8332e9b13f --- /dev/null +++ b/packages/experimental/VibrancyView/src/VibrancyViewNativeComponent.macos.ts @@ -0,0 +1,5 @@ +import type { HostComponent } from 'react-native'; +import type { NativeProps } from './VibrancyView.types'; +import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent'; + +export default codegenNativeComponent('FRNVibrancyView') as HostComponent; diff --git a/packages/experimental/VibrancyView/src/VibrancyViewNativeComponent.ts b/packages/experimental/VibrancyView/src/VibrancyViewNativeComponent.ts index 9984ad3b4a..612869c70c 100644 --- a/packages/experimental/VibrancyView/src/VibrancyViewNativeComponent.ts +++ b/packages/experimental/VibrancyView/src/VibrancyViewNativeComponent.ts @@ -1,34 +1,4 @@ -/** - * Copyright (c) Microsoft Corporation. - * Licensed under the MIT License. - * @format - */ +import type { NativeProps } from './VibrancyView.types'; +import { requireNativeComponent } from 'react-native'; -import type { HostComponent, ViewProps } from 'react-native'; - -import type { WithDefault } from 'react-native/Libraries/Types/CodegenTypes'; -import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent'; - -export interface NativeProps extends ViewProps { - material?: WithDefault< - | 'titlebar' - | 'selection' - | 'menu' - | 'popover' - | 'sidebar' - | 'headerview' - | 'sheet' - | 'windowbackground' - | 'hudWindow' - | 'fullScreenUI' - | 'toolTip' - | 'contentBackground' - | 'underWindowBackground' - | 'underPageBackground', - 'menu' - >; - blendingMode?: WithDefault<'behindWindow' | 'withinWindow', 'behindWindow'>; - state?: WithDefault<'followsWindowActiveState' | 'active' | 'inactive', 'followsWindowActiveState'>; -} - -export default codegenNativeComponent('FRNVibrancyView') as HostComponent; +export default requireNativeComponent('FRNVibrancyView'); diff --git a/packages/framework/framework/package.json b/packages/framework/framework/package.json index 33e81e05d8..eb1f011ddb 100644 --- a/packages/framework/framework/package.json +++ b/packages/framework/framework/package.json @@ -53,7 +53,7 @@ "@fluentui-react-native/scripts": "workspace:*", "@react-native/babel-preset": "^0.74.0", "@react-native/metro-config": "^0.74.0", - "@rnx-kit/cli": "^0.18.14", + "@rnx-kit/cli": "catalog:", "@types/react": "~18.2.0", "@types/react-test-renderer": "^18.2.0", "react": "18.2.0", diff --git a/packages/libraries/core/package.json b/packages/libraries/core/package.json index 8ebb9137f9..233f5fc973 100644 --- a/packages/libraries/core/package.json +++ b/packages/libraries/core/package.json @@ -59,7 +59,7 @@ "@fluentui-react-native/scripts": "workspace:*", "@react-native/babel-preset": "^0.74.0", "@react-native/metro-config": "^0.74.0", - "@rnx-kit/cli": "^0.18.14", + "@rnx-kit/cli": "catalog:", "@types/react": "~18.2.0", "react": "18.2.0", "react-native": "^0.74.0", diff --git a/yarn.lock b/yarn.lock index f13d562246..653897efe3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,16 +5,6 @@ __metadata: version: 8 cacheKey: 10c0 -"@ampproject/remapping@npm:^2.2.0": - version: 2.3.0 - resolution: "@ampproject/remapping@npm:2.3.0" - dependencies: - "@jridgewell/gen-mapping": "npm:^0.3.5" - "@jridgewell/trace-mapping": "npm:^0.3.24" - checksum: 10c0/81d63cca5443e0f0c72ae18b544cc28c7c0ec2cea46e7cb888bb0e0f411a1191d0d6b7af798d54e30777d8d1488b2ec0732aac2be342d3d7d3ffd271c6f489ed - languageName: node - linkType: hard - "@appium/base-driver@npm:^10.0.0-rc.1, @appium/base-driver@npm:^10.0.0-rc.2, @appium/base-driver@npm:^10.1.2": version: 10.1.2 resolution: "@appium/base-driver@npm:10.1.2" @@ -290,18 +280,7 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.21.4, @babel/code-frame@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/code-frame@npm:7.27.1" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.27.1" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.1.1" - checksum: 10c0/5dd9a18baa5fce4741ba729acc3a3272c49c25cb8736c4b18e113099520e7ef7b545a4096a26d600e4416157e63e87d66db46aa3fbf0a5f2286da2705c12da00 - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.24.7, @babel/code-frame@npm:^7.28.6": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.21.4, @babel/code-frame@npm:^7.24.7, @babel/code-frame@npm:^7.27.1, @babel/code-frame@npm:^7.28.6": version: 7.28.6 resolution: "@babel/code-frame@npm:7.28.6" dependencies: @@ -312,44 +291,14 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.27.2, @babel/compat-data@npm:^7.27.7, @babel/compat-data@npm:^7.28.0": - version: 7.28.0 - resolution: "@babel/compat-data@npm:7.28.0" - checksum: 10c0/c4e527302bcd61052423f757355a71c3bc62362bac13f7f130de16e439716f66091ff5bdecda418e8fa0271d4c725f860f0ee23ab7bf6e769f7a8bb16dfcb531 - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.28.6": +"@babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.27.7, @babel/compat-data@npm:^7.28.6": version: 7.28.6 resolution: "@babel/compat-data@npm:7.28.6" checksum: 10c0/2d047431041281eaf33e9943d1a269d3374dbc9b498cafe6a18f5ee9aee7bb96f7f6cac0304eab4d13c41fc4db00fe4ca16c7aa44469ca6a211b8b6343b78fc4 languageName: node linkType: hard -"@babel/core@npm:^7.0.0, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.20.0, @babel/core@npm:^7.21.3, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.7": - version: 7.28.0 - resolution: "@babel/core@npm:7.28.0" - dependencies: - "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.27.1" - "@babel/generator": "npm:^7.28.0" - "@babel/helper-compilation-targets": "npm:^7.27.2" - "@babel/helper-module-transforms": "npm:^7.27.3" - "@babel/helpers": "npm:^7.27.6" - "@babel/parser": "npm:^7.28.0" - "@babel/template": "npm:^7.27.2" - "@babel/traverse": "npm:^7.28.0" - "@babel/types": "npm:^7.28.0" - convert-source-map: "npm:^2.0.0" - debug: "npm:^4.1.0" - gensync: "npm:^1.0.0-beta.2" - json5: "npm:^2.2.3" - semver: "npm:^6.3.1" - checksum: 10c0/423302e7c721e73b1c096217880272e02020dfb697a55ccca60ad01bba90037015f84d0c20c6ce297cf33a19bb704bc5c2b3d3095f5284dfa592bd1de0b9e8c3 - languageName: node - linkType: hard - -"@babel/core@npm:^7.25.2": +"@babel/core@npm:^7.0.0, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.20.0, @babel/core@npm:^7.21.3, @babel/core@npm:^7.23.9, @babel/core@npm:^7.24.7, @babel/core@npm:^7.25.2": version: 7.28.6 resolution: "@babel/core@npm:7.28.6" dependencies: @@ -372,20 +321,7 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.20.0, @babel/generator@npm:^7.28.0, @babel/generator@npm:^7.7.2": - version: 7.28.0 - resolution: "@babel/generator@npm:7.28.0" - dependencies: - "@babel/parser": "npm:^7.28.0" - "@babel/types": "npm:^7.28.0" - "@jridgewell/gen-mapping": "npm:^0.3.12" - "@jridgewell/trace-mapping": "npm:^0.3.28" - jsesc: "npm:^3.0.2" - checksum: 10c0/1b3d122268ea3df50fde707ad864d9a55c72621357d5cebb972db3dd76859c45810c56e16ad23123f18f80cc2692f5a015d2858361300f0f224a05dc43d36a92 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.25.0, @babel/generator@npm:^7.28.6": +"@babel/generator@npm:^7.20.0, @babel/generator@npm:^7.25.0, @babel/generator@npm:^7.28.6, @babel/generator@npm:^7.7.2": version: 7.28.6 resolution: "@babel/generator@npm:7.28.6" dependencies: @@ -407,20 +343,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.27.1, @babel/helper-compilation-targets@npm:^7.27.2": - version: 7.27.2 - resolution: "@babel/helper-compilation-targets@npm:7.27.2" - dependencies: - "@babel/compat-data": "npm:^7.27.2" - "@babel/helper-validator-option": "npm:^7.27.1" - browserslist: "npm:^4.24.0" - lru-cache: "npm:^5.1.1" - semver: "npm:^6.3.1" - checksum: 10c0/f338fa00dcfea931804a7c55d1a1c81b6f0a09787e528ec580d5c21b3ecb3913f6cb0f361368973ce953b824d910d3ac3e8a8ee15192710d3563826447193ad1 - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.28.6": +"@babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.27.1, @babel/helper-compilation-targets@npm:^7.27.2, @babel/helper-compilation-targets@npm:^7.28.6": version: 7.28.6 resolution: "@babel/helper-compilation-targets@npm:7.28.6" dependencies: @@ -433,24 +356,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/helper-create-class-features-plugin@npm:7.27.1" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.27.1" - "@babel/helper-member-expression-to-functions": "npm:^7.27.1" - "@babel/helper-optimise-call-expression": "npm:^7.27.1" - "@babel/helper-replace-supers": "npm:^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.27.1" - "@babel/traverse": "npm:^7.27.1" - semver: "npm:^6.3.1" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/4ee199671d6b9bdd4988aa2eea4bdced9a73abfc831d81b00c7634f49a8fc271b3ceda01c067af58018eb720c6151322015d463abea7072a368ee13f35adbb4c - languageName: node - linkType: hard - -"@babel/helper-create-class-features-plugin@npm:^7.28.6": +"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.28.6": version: 7.28.6 resolution: "@babel/helper-create-class-features-plugin@npm:7.28.6" dependencies: @@ -467,20 +373,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.27.1" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.27.1" - regexpu-core: "npm:^6.2.0" - semver: "npm:^6.3.1" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/591fe8bd3bb39679cc49588889b83bd628d8c4b99c55bafa81e80b1e605a348b64da955e3fd891c4ba3f36fd015367ba2eadea22af6a7de1610fbb5bcc2d3df0 - languageName: node - linkType: hard - -"@babel/helper-create-regexp-features-plugin@npm:^7.28.5": +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.27.1, @babel/helper-create-regexp-features-plugin@npm:^7.28.5": version: 7.28.5 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.28.5" dependencies: @@ -493,36 +386,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-define-polyfill-provider@npm:^0.4.4": - version: 0.4.4 - resolution: "@babel/helper-define-polyfill-provider@npm:0.4.4" - dependencies: - "@babel/helper-compilation-targets": "npm:^7.22.6" - "@babel/helper-plugin-utils": "npm:^7.22.5" - debug: "npm:^4.1.1" - lodash.debounce: "npm:^4.0.8" - resolve: "npm:^1.14.2" - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10c0/60126f5f719b9e2114df62e3bf3ac0797b71d8dc733db60192eb169b004fde72ee309fa5848c5fdfe98b8e8863c46f55e16da5aa8a4e420b4d2670cd0c5dd708 - languageName: node - linkType: hard - -"@babel/helper-define-polyfill-provider@npm:^0.5.0": - version: 0.5.0 - resolution: "@babel/helper-define-polyfill-provider@npm:0.5.0" - dependencies: - "@babel/helper-compilation-targets": "npm:^7.22.6" - "@babel/helper-plugin-utils": "npm:^7.22.5" - debug: "npm:^4.1.1" - lodash.debounce: "npm:^4.0.8" - resolve: "npm:^1.14.2" - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10c0/2b053b96a0c604a7e0f5c7d13a8a55f4451d938f7af42bd40f62a87df15e6c87a0b1dbd893a0f0bb51077b54dc3ba00a58b166531a5940ad286ab685dd8979ec - languageName: node - linkType: hard - "@babel/helper-define-polyfill-provider@npm:^0.6.5": version: 0.6.5 resolution: "@babel/helper-define-polyfill-provider@npm:0.6.5" @@ -554,16 +417,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/helper-member-expression-to-functions@npm:7.27.1" - dependencies: - "@babel/traverse": "npm:^7.27.1" - "@babel/types": "npm:^7.27.1" - checksum: 10c0/5762ad009b6a3d8b0e6e79ff6011b3b8fdda0fefad56cfa8bfbe6aa02d5a8a8a9680a45748fe3ac47e735a03d2d88c0a676e3f9f59f20ae9fadcc8d51ccd5a53 - languageName: node - linkType: hard - "@babel/helper-member-expression-to-functions@npm:^7.28.5": version: 7.28.5 resolution: "@babel/helper-member-expression-to-functions@npm:7.28.5" @@ -574,17 +427,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.22.5, @babel/helper-module-imports@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/helper-module-imports@npm:7.27.1" - dependencies: - "@babel/traverse": "npm:^7.27.1" - "@babel/types": "npm:^7.27.1" - checksum: 10c0/e00aace096e4e29290ff8648455c2bc4ed982f0d61dbf2db1b5e750b9b98f318bf5788d75a4f974c151bd318fd549e81dbcab595f46b14b81c12eda3023f51e8 - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.28.6": +"@babel/helper-module-imports@npm:^7.27.1, @babel/helper-module-imports@npm:^7.28.6": version: 7.28.6 resolution: "@babel/helper-module-imports@npm:7.28.6" dependencies: @@ -594,20 +437,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.27.1, @babel/helper-module-transforms@npm:^7.27.3": - version: 7.27.3 - resolution: "@babel/helper-module-transforms@npm:7.27.3" - dependencies: - "@babel/helper-module-imports": "npm:^7.27.1" - "@babel/helper-validator-identifier": "npm:^7.27.1" - "@babel/traverse": "npm:^7.27.3" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/fccb4f512a13b4c069af51e1b56b20f54024bcf1591e31e978a30f3502567f34f90a80da6a19a6148c249216292a8074a0121f9e52602510ef0f32dbce95ca01 - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.28.3, @babel/helper-module-transforms@npm:^7.28.6": +"@babel/helper-module-transforms@npm:^7.27.1, @babel/helper-module-transforms@npm:^7.28.3, @babel/helper-module-transforms@npm:^7.28.6": version: 7.28.6 resolution: "@babel/helper-module-transforms@npm:7.28.6" dependencies: @@ -629,14 +459,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.24.8, @babel/helper-plugin-utils@npm:^7.27.1, @babel/helper-plugin-utils@npm:^7.8.0": - version: 7.27.1 - resolution: "@babel/helper-plugin-utils@npm:7.27.1" - checksum: 10c0/94cf22c81a0c11a09b197b41ab488d416ff62254ce13c57e62912c85700dc2e99e555225787a4099ff6bae7a1812d622c80fbaeda824b79baa10a6c5ac4cf69b - languageName: node - linkType: hard - -"@babel/helper-plugin-utils@npm:^7.28.6": +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.27.1, @babel/helper-plugin-utils@npm:^7.28.6, @babel/helper-plugin-utils@npm:^7.8.0": version: 7.28.6 resolution: "@babel/helper-plugin-utils@npm:7.28.6" checksum: 10c0/3f5f8acc152fdbb69a84b8624145ff4f9b9f6e776cb989f9f968f8606eb7185c5c3cfcf3ba08534e37e1e0e1c118ac67080610333f56baa4f7376c99b5f1143d @@ -656,20 +479,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/helper-replace-supers@npm:7.27.1" - dependencies: - "@babel/helper-member-expression-to-functions": "npm:^7.27.1" - "@babel/helper-optimise-call-expression": "npm:^7.27.1" - "@babel/traverse": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/4f2eaaf5fcc196580221a7ccd0f8873447b5d52745ad4096418f6101a1d2e712e9f93722c9a32bc9769a1dc197e001f60d6f5438d4dfde4b9c6a9e4df719354c - languageName: node - linkType: hard - -"@babel/helper-replace-supers@npm:^7.28.6": +"@babel/helper-replace-supers@npm:^7.27.1, @babel/helper-replace-supers@npm:^7.28.6": version: 7.28.6 resolution: "@babel/helper-replace-supers@npm:7.28.6" dependencies: @@ -699,13 +509,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/helper-validator-identifier@npm:7.27.1" - checksum: 10c0/c558f11c4871d526498e49d07a84752d1800bf72ac0d3dad100309a2eaba24efbf56ea59af5137ff15e3a00280ebe588560534b0e894a4750f8b1411d8f78b84 - languageName: node - linkType: hard - "@babel/helper-validator-identifier@npm:^7.28.5": version: 7.28.5 resolution: "@babel/helper-validator-identifier@npm:7.28.5" @@ -731,16 +534,6 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.27.6": - version: 7.27.6 - resolution: "@babel/helpers@npm:7.27.6" - dependencies: - "@babel/template": "npm:^7.27.2" - "@babel/types": "npm:^7.27.6" - checksum: 10c0/448bac96ef8b0f21f2294a826df9de6bf4026fd023f8a6bb6c782fe3e61946801ca24381490b8e58d861fee75cd695a1882921afbf1f53b0275ee68c938bd6d3 - languageName: node - linkType: hard - "@babel/helpers@npm:^7.28.6": version: 7.28.6 resolution: "@babel/helpers@npm:7.28.6" @@ -751,18 +544,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.0, @babel/parser@npm:^7.20.15, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.3, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.27.2, @babel/parser@npm:^7.28.0": - version: 7.28.0 - resolution: "@babel/parser@npm:7.28.0" - dependencies: - "@babel/types": "npm:^7.28.0" - bin: - parser: ./bin/babel-parser.js - checksum: 10c0/c2ef81d598990fa949d1d388429df327420357cb5200271d0d0a2784f1e6d54afc8301eb8bdf96d8f6c77781e402da93c7dc07980fcc136ac5b9d5f1fce701b5 - languageName: node - linkType: hard - -"@babel/parser@npm:^7.25.3, @babel/parser@npm:^7.28.6": +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.0, @babel/parser@npm:^7.20.15, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.3, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.25.3, @babel/parser@npm:^7.28.6": version: 7.28.6 resolution: "@babel/parser@npm:7.28.6" dependencies: @@ -773,18 +555,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.27.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/traverse": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/7dfffa978ae1cd179641a7c4b4ad688c6828c2c58ec96b118c2fb10bc3715223de6b88bff1ebff67056bb5fccc568ae773e3b83c592a1b843423319f80c99ebd - languageName: node - linkType: hard - "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.28.5": version: 7.28.5 resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.28.5" @@ -832,18 +602,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.27.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/traverse": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/b94e6c3fc019e988b1499490829c327a1067b4ddea8ad402f6d0554793c9124148c2125338c723661b6dff040951abc1f092afbf3f2d234319cd580b68e52445 - languageName: node - linkType: hard - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.28.6" @@ -882,19 +640,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-export-default-from@npm:^7.0.0": - version: 7.22.5 - resolution: "@babel/plugin-proposal-export-default-from@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.22.5" - "@babel/plugin-syntax-export-default-from": "npm:^7.22.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/db5d0df5bb8d13078cf2793900ca89075622e4a8c4c5246328b1b62ad3c99990b18e4716de10123a34649fea885d8a615082a21db905903d27fa0bcbd53da799 - languageName: node - linkType: hard - -"@babel/plugin-proposal-export-default-from@npm:^7.24.7": +"@babel/plugin-proposal-export-default-from@npm:^7.0.0, @babel/plugin-proposal-export-default-from@npm:^7.24.7": version: 7.27.1 resolution: "@babel/plugin-proposal-export-default-from@npm:7.27.1" dependencies: @@ -1048,18 +794,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-export-default-from@npm:^7.0.0, @babel/plugin-syntax-export-default-from@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-syntax-export-default-from@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.22.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/57fae17e0db773fa6f11263cf59e9c1946145c3dde01b399c364c6a6b0b7c9df18051d697ad95b5c6927d7f081921aa1f1096bbd9a2762746e92c1144810c32c - languageName: node - linkType: hard - -"@babel/plugin-syntax-export-default-from@npm:^7.24.7": +"@babel/plugin-syntax-export-default-from@npm:^7.0.0, @babel/plugin-syntax-export-default-from@npm:^7.24.7": version: 7.28.6 resolution: "@babel/plugin-syntax-export-default-from@npm:7.28.6" dependencies: @@ -1070,18 +805,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-flow@npm:^7.12.1, @babel/plugin-syntax-flow@npm:^7.18.0, @babel/plugin-syntax-flow@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-syntax-flow@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/2f0cb7a78379029707e61f6665634a5b758c8b4ccb602a72d798e41d36b0647c2f2de59f90e0c1d522b026962918e54d82f3aee0c194dc87cd340455aa58562a - languageName: node - linkType: hard - -"@babel/plugin-syntax-flow@npm:^7.27.1": +"@babel/plugin-syntax-flow@npm:^7.12.1, @babel/plugin-syntax-flow@npm:^7.18.0, @babel/plugin-syntax-flow@npm:^7.27.1": version: 7.28.6 resolution: "@babel/plugin-syntax-flow@npm:7.28.6" dependencies: @@ -1092,17 +816,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-assertions@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.27.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/06a954ee672f7a7c44d52b6e55598da43a7064e80df219765c51c37a0692641277e90411028f7cae4f4d1dedeed084f0c453576fa421c35a81f1603c5e3e0146 - languageName: node - linkType: hard - "@babel/plugin-syntax-import-assertions@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-syntax-import-assertions@npm:7.28.6" @@ -1114,17 +827,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-attributes@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.27.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/e66f7a761b8360419bbb93ab67d87c8a97465ef4637a985ff682ce7ba6918b34b29d81190204cf908d0933058ee7b42737423cd8a999546c21b3aabad4affa9a - languageName: node - linkType: hard - "@babel/plugin-syntax-import-attributes@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-syntax-import-attributes@npm:7.28.6" @@ -1158,18 +860,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.27.1, @babel/plugin-syntax-jsx@npm:^7.7.2": - version: 7.27.1 - resolution: "@babel/plugin-syntax-jsx@npm:7.27.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/bc5afe6a458d5f0492c02a54ad98c5756a0c13bd6d20609aae65acd560a9e141b0876da5f358dce34ea136f271c1016df58b461184d7ae9c4321e0f98588bc84 - languageName: node - linkType: hard - -"@babel/plugin-syntax-jsx@npm:^7.28.6": +"@babel/plugin-syntax-jsx@npm:^7.27.1, @babel/plugin-syntax-jsx@npm:^7.28.6, @babel/plugin-syntax-jsx@npm:^7.7.2": version: 7.28.6 resolution: "@babel/plugin-syntax-jsx@npm:7.28.6" dependencies: @@ -1268,18 +959,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.27.1, @babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.27.1 - resolution: "@babel/plugin-syntax-typescript@npm:7.27.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/11589b4c89c66ef02d57bf56c6246267851ec0c361f58929327dc3e070b0dab644be625bbe7fb4c4df30c3634bfdfe31244e1f517be397d2def1487dbbe3c37d - languageName: node - linkType: hard - -"@babel/plugin-syntax-typescript@npm:^7.28.6, @babel/plugin-syntax-typescript@npm:^7.3.3": +"@babel/plugin-syntax-typescript@npm:^7.28.6, @babel/plugin-syntax-typescript@npm:^7.3.3, @babel/plugin-syntax-typescript@npm:^7.7.2": version: 7.28.6 resolution: "@babel/plugin-syntax-typescript@npm:7.28.6" dependencies: @@ -1326,33 +1006,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.28.0": - version: 7.28.0 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.28.0" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/helper-remap-async-to-generator": "npm:^7.27.1" - "@babel/traverse": "npm:^7.28.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/739d577e649d7d7b9845dc309e132964327ab3eaea43ad04d04a7dcb977c63f9aa9a423d1ca39baf10939128d02f52e6fda39c834fb9f1753785b1497e72c4dc - languageName: node - linkType: hard - -"@babel/plugin-transform-async-to-generator@npm:^7.20.0, @babel/plugin-transform-async-to-generator@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.27.1" - dependencies: - "@babel/helper-module-imports": "npm:^7.27.1" - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/helper-remap-async-to-generator": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/e76b1f6f9c3bbf72e17d7639406d47f09481806de4db99a8de375a0bb40957ea309b20aa705f0c25ab1d7c845e3f365af67eafa368034521151a0e352a03ef2f - languageName: node - linkType: hard - -"@babel/plugin-transform-async-to-generator@npm:^7.24.7, @babel/plugin-transform-async-to-generator@npm:^7.28.6": +"@babel/plugin-transform-async-to-generator@npm:^7.20.0, @babel/plugin-transform-async-to-generator@npm:^7.24.7, @babel/plugin-transform-async-to-generator@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-async-to-generator@npm:7.28.6" dependencies: @@ -1376,18 +1030,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.0.0, @babel/plugin-transform-block-scoping@npm:^7.28.0": - version: 7.28.0 - resolution: "@babel/plugin-transform-block-scoping@npm:7.28.0" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/787d85e72a92917e735aa54e23062fa777031f8a07046e67f5026eff3d91e64eb535575dd1df917b0011bee014ae51287478af14c1d4ba60bc81e326bc044cfc - languageName: node - linkType: hard - -"@babel/plugin-transform-block-scoping@npm:^7.25.0, @babel/plugin-transform-block-scoping@npm:^7.28.6": +"@babel/plugin-transform-block-scoping@npm:^7.0.0, @babel/plugin-transform-block-scoping@npm:^7.25.0, @babel/plugin-transform-block-scoping@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-block-scoping@npm:7.28.6" dependencies: @@ -1398,19 +1041,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:^7.24.7, @babel/plugin-transform-class-properties@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-class-properties@npm:7.27.1" - dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.27.1" - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/cc0662633c0fe6df95819fef223506ddf26c369c8d64ab21a728d9007ec866bf9436a253909819216c24a82186b6ccbc1ec94d7aaf3f82df227c7c02fa6a704b - languageName: node - linkType: hard - -"@babel/plugin-transform-class-properties@npm:^7.25.4, @babel/plugin-transform-class-properties@npm:^7.28.6": +"@babel/plugin-transform-class-properties@npm:^7.24.7, @babel/plugin-transform-class-properties@npm:^7.25.4, @babel/plugin-transform-class-properties@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-class-properties@npm:7.28.6" dependencies: @@ -1422,18 +1053,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-class-static-block@npm:7.27.1" - dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.27.1" - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.12.0 - checksum: 10c0/396997dd81fc1cf242b921e337d25089d6b9dc3596e81322ff11a6359326dc44f2f8b82dcc279c2e514cafaf8964dc7ed39e9fab4b8af1308b57387d111f6a20 - languageName: node - linkType: hard - "@babel/plugin-transform-class-static-block@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-class-static-block@npm:7.28.6" @@ -1446,28 +1065,12 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.0.0, @babel/plugin-transform-classes@npm:^7.28.0": - version: 7.28.0 - resolution: "@babel/plugin-transform-classes@npm:7.28.0" +"@babel/plugin-transform-classes@npm:^7.0.0, @babel/plugin-transform-classes@npm:^7.25.4, @babel/plugin-transform-classes@npm:^7.28.6": + version: 7.28.6 + resolution: "@babel/plugin-transform-classes@npm:7.28.6" dependencies: "@babel/helper-annotate-as-pure": "npm:^7.27.3" - "@babel/helper-compilation-targets": "npm:^7.27.2" - "@babel/helper-globals": "npm:^7.28.0" - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/helper-replace-supers": "npm:^7.27.1" - "@babel/traverse": "npm:^7.28.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/3b213b43104fe99dd7e79401a86d09e545836e057a70ffe77e8196a87bf67ae167e502ae90afdf0d1a2be683be5652514aaeda743bd984e583523dd8ecfef887 - languageName: node - linkType: hard - -"@babel/plugin-transform-classes@npm:^7.25.4, @babel/plugin-transform-classes@npm:^7.28.6": - version: 7.28.6 - resolution: "@babel/plugin-transform-classes@npm:7.28.6" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.27.3" - "@babel/helper-compilation-targets": "npm:^7.28.6" + "@babel/helper-compilation-targets": "npm:^7.28.6" "@babel/helper-globals": "npm:^7.28.0" "@babel/helper-plugin-utils": "npm:^7.28.6" "@babel/helper-replace-supers": "npm:^7.28.6" @@ -1478,19 +1081,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.0.0, @babel/plugin-transform-computed-properties@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-computed-properties@npm:7.27.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/template": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/e09a12f8c8ae0e6a6144c102956947b4ec05f6c844169121d0ec4529c2d30ad1dc59fee67736193b87a402f44552c888a519a680a31853bdb4d34788c28af3b0 - languageName: node - linkType: hard - -"@babel/plugin-transform-computed-properties@npm:^7.24.7, @babel/plugin-transform-computed-properties@npm:^7.28.6": +"@babel/plugin-transform-computed-properties@npm:^7.0.0, @babel/plugin-transform-computed-properties@npm:^7.24.7, @babel/plugin-transform-computed-properties@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-computed-properties@npm:7.28.6" dependencies: @@ -1502,19 +1093,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.20.0, @babel/plugin-transform-destructuring@npm:^7.28.0": - version: 7.28.0 - resolution: "@babel/plugin-transform-destructuring@npm:7.28.0" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/traverse": "npm:^7.28.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/cc7ccafa952b3ff7888544d5688cfafaba78c69ce1e2f04f3233f4f78c9de5e46e9695f5ea42c085b0c0cfa39b10f366d362a2be245b6d35b66d3eb1d427ccb2 - languageName: node - linkType: hard - -"@babel/plugin-transform-destructuring@npm:^7.24.8, @babel/plugin-transform-destructuring@npm:^7.28.5": +"@babel/plugin-transform-destructuring@npm:^7.20.0, @babel/plugin-transform-destructuring@npm:^7.24.8, @babel/plugin-transform-destructuring@npm:^7.28.5": version: 7.28.5 resolution: "@babel/plugin-transform-destructuring@npm:7.28.5" dependencies: @@ -1526,18 +1105,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.27.1" - dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.27.1" - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/f9caddfad9a551b4dabe0dcb7c040f458fbaaa7bbb44200c20198b32c8259be8e050e58d2c853fdac901a4cfe490b86aa857036d8d461b192dd010d0e242dedb - languageName: node - linkType: hard - "@babel/plugin-transform-dotall-regex@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-dotall-regex@npm:7.28.6" @@ -1561,18 +1128,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.27.1" - dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.27.1" - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/121502a252b3206913e1e990a47fea34397b4cbf7804d4cd872d45961bc45b603423f60ca87f3a3023a62528f5feb475ac1c9ec76096899ec182fcb135eba375 - languageName: node - linkType: hard - "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.28.6" @@ -1596,18 +1151,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-explicit-resource-management@npm:^7.28.0": - version: 7.28.0 - resolution: "@babel/plugin-transform-explicit-resource-management@npm:7.28.0" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/plugin-transform-destructuring": "npm:^7.28.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/3baa706af3112adf2ae0c7ec0dc61b63dd02695eb5582f3c3a2b2d05399c6aa7756f55e7bbbd5412e613a6ba1dd6b6736904074b4d7ebd6b45a1e3f9145e4094 - languageName: node - linkType: hard - "@babel/plugin-transform-explicit-resource-management@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-explicit-resource-management@npm:7.28.6" @@ -1620,17 +1163,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-exponentiation-operator@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.27.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/953d21e01fed76da8e08fb5094cade7bf8927c1bb79301916bec2db0593b41dbcfbca1024ad5db886b72208a93ada8f57a219525aad048cf15814eeb65cf760d - languageName: node - linkType: hard - "@babel/plugin-transform-exponentiation-operator@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.28.6" @@ -1653,19 +1185,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-flow-strip-types@npm:^7.20.0, @babel/plugin-transform-flow-strip-types@npm:^7.24.7": - version: 7.25.2 - resolution: "@babel/plugin-transform-flow-strip-types@npm:7.25.2" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.8" - "@babel/plugin-syntax-flow": "npm:^7.24.7" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/821f5ccdb8104e09764d8a24d4c0dd4fe9e264d95e6477269c911e15240a63343d3fe71b6cf9382273766a0e86a015c2867d26fd75e5827134d990c93fa9e605 - languageName: node - linkType: hard - -"@babel/plugin-transform-flow-strip-types@npm:^7.25.2": +"@babel/plugin-transform-flow-strip-types@npm:^7.20.0, @babel/plugin-transform-flow-strip-types@npm:^7.24.7, @babel/plugin-transform-flow-strip-types@npm:^7.25.2": version: 7.27.1 resolution: "@babel/plugin-transform-flow-strip-types@npm:7.27.1" dependencies: @@ -1702,17 +1222,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-json-strings@npm:7.27.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/2379714aca025516452a7c1afa1ca42a22b9b51a5050a653cc6198a51665ab82bdecf36106d32d731512706a1e373c5637f5ff635737319aa42f3827da2326d6 - languageName: node - linkType: hard - "@babel/plugin-transform-json-strings@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-json-strings@npm:7.28.6" @@ -1746,17 +1255,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.27.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/5b0abc7c0d09d562bf555c646dce63a30288e5db46fd2ce809a61d064415da6efc3b2b3c59b8e4fe98accd072c89a2f7c3765b400e4bf488651735d314d9feeb - languageName: node - linkType: hard - "@babel/plugin-transform-member-expression-literals@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-member-expression-literals@npm:7.27.1" @@ -1780,19 +1278,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.0.0, @babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.24.7, @babel/plugin-transform-modules-commonjs@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.27.1" - dependencies: - "@babel/helper-module-transforms": "npm:^7.27.1" - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/4def972dcd23375a266ea1189115a4ff61744b2c9366fc1de648b3fab2c650faf1a94092de93a33ff18858d2e6c4dddeeee5384cb42ba0129baeab01a5cdf1e2 - languageName: node - linkType: hard - -"@babel/plugin-transform-modules-commonjs@npm:^7.24.8, @babel/plugin-transform-modules-commonjs@npm:^7.28.6": +"@babel/plugin-transform-modules-commonjs@npm:^7.0.0, @babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.24.7, @babel/plugin-transform-modules-commonjs@npm:^7.24.8, @babel/plugin-transform-modules-commonjs@npm:^7.27.1, @babel/plugin-transform-modules-commonjs@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-modules-commonjs@npm:7.28.6" dependencies: @@ -1804,20 +1290,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.27.1" - dependencies: - "@babel/helper-module-transforms": "npm:^7.27.1" - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/helper-validator-identifier": "npm:^7.27.1" - "@babel/traverse": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/f16fca62d144d9cbf558e7b5f83e13bb6d0f21fdeff3024b0cecd42ffdec0b4151461da42bd0963512783ece31aafa5ffe03446b4869220ddd095b24d414e2b5 - languageName: node - linkType: hard - "@babel/plugin-transform-modules-systemjs@npm:^7.28.5": version: 7.28.5 resolution: "@babel/plugin-transform-modules-systemjs@npm:7.28.5" @@ -1867,18 +1339,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.27.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/a435fc03aaa65c6ef8e99b2d61af0994eb5cdd4a28562d78c3b0b0228ca7e501aa255e1dff091a6996d7d3ea808eb5a65fd50ecd28dfb10687a8a1095dcadc7a - languageName: node - linkType: hard - -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.28.6": +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7, @babel/plugin-transform-nullish-coalescing-operator@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.28.6" dependencies: @@ -1900,17 +1361,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.27.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/b72cbebbfe46fcf319504edc1cf59f3f41c992dd6840db766367f6a1d232cd2c52143c5eaf57e0316710bee251cae94be97c6d646b5022fcd9274ccb131b470c - languageName: node - linkType: hard - "@babel/plugin-transform-object-rest-spread@npm:^7.24.7, @babel/plugin-transform-object-rest-spread@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-object-rest-spread@npm:7.28.6" @@ -1926,21 +1376,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.28.0": - version: 7.28.0 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.28.0" - dependencies: - "@babel/helper-compilation-targets": "npm:^7.27.2" - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/plugin-transform-destructuring": "npm:^7.28.0" - "@babel/plugin-transform-parameters": "npm:^7.27.7" - "@babel/traverse": "npm:^7.28.0" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/360dc6fd5285ee5e1d3be8a1fb0decd120b2a1726800317b4ab48b7c91616247030239b7fa06ceaa1a8a586fde1e143c24d45f8d41956876099d97d664f8ef1e - languageName: node - linkType: hard - "@babel/plugin-transform-object-super@npm:^7.27.1": version: 7.27.1 resolution: "@babel/plugin-transform-object-super@npm:7.27.1" @@ -1964,30 +1399,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.27.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/807a4330f1fac08e2682d57bc82e714868fc651c8876f9a8b3a3fd8f53c129e87371f8243e712ac7dae11e090b737a2219a02fe1b6459a29e664fa073c3277bb - languageName: node - linkType: hard - -"@babel/plugin-transform-optional-chaining@npm:^7.24.7, @babel/plugin-transform-optional-chaining@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.27.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/5b18ff5124e503f0a25d6b195be7351a028b3992d6f2a91fb4037e2a2c386400d66bc1df8f6df0a94c708524f318729e81a95c41906e5a7919a06a43e573a525 - languageName: node - linkType: hard - -"@babel/plugin-transform-optional-chaining@npm:^7.24.8, @babel/plugin-transform-optional-chaining@npm:^7.28.6": +"@babel/plugin-transform-optional-chaining@npm:^7.24.7, @babel/plugin-transform-optional-chaining@npm:^7.24.8, @babel/plugin-transform-optional-chaining@npm:^7.27.1, @babel/plugin-transform-optional-chaining@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-optional-chaining@npm:7.28.6" dependencies: @@ -2010,19 +1422,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-methods@npm:^7.22.5, @babel/plugin-transform-private-methods@npm:^7.24.7, @babel/plugin-transform-private-methods@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-private-methods@npm:7.27.1" - dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.27.1" - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/232bedfe9d28df215fb03cc7623bdde468b1246bdd6dc24465ff4bf9cc5f5a256ae33daea1fafa6cc59705e4d29da9024bb79baccaa5cd92811ac5db9b9244f2 - languageName: node - linkType: hard - -"@babel/plugin-transform-private-methods@npm:^7.28.6": +"@babel/plugin-transform-private-methods@npm:^7.22.5, @babel/plugin-transform-private-methods@npm:^7.24.7, @babel/plugin-transform-private-methods@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-private-methods@npm:7.28.6" dependencies: @@ -2034,20 +1434,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.22.11, @babel/plugin-transform-private-property-in-object@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.27.1" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.27.1" - "@babel/helper-create-class-features-plugin": "npm:^7.27.1" - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/a8c4536273ca716dcc98e74ea25ca76431528554922f184392be3ddaf1761d4aa0e06f1311577755bd1613f7054fb51d29de2ada1130f743d329170a1aa1fe56 - languageName: node - linkType: hard - -"@babel/plugin-transform-private-property-in-object@npm:^7.24.7, @babel/plugin-transform-private-property-in-object@npm:^7.28.6": +"@babel/plugin-transform-private-property-in-object@npm:^7.22.11, @babel/plugin-transform-private-property-in-object@npm:^7.24.7, @babel/plugin-transform-private-property-in-object@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-private-property-in-object@npm:7.28.6" dependencies: @@ -2071,18 +1458,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-display-name@npm:^7.0.0": - version: 7.27.1 - resolution: "@babel/plugin-transform-react-display-name@npm:7.27.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/6cd474b5fb30a2255027d8fc19975aee1c1da54dd8bc8b79802676096182ca4136302ce65a24fbb277f8fe30f266006bbf327ef6be2846d3681eb57509744125 - languageName: node - linkType: hard - -"@babel/plugin-transform-react-display-name@npm:^7.24.7, @babel/plugin-transform-react-display-name@npm:^7.28.0": +"@babel/plugin-transform-react-display-name@npm:^7.0.0, @babel/plugin-transform-react-display-name@npm:^7.24.7, @babel/plugin-transform-react-display-name@npm:^7.28.0": version: 7.28.0 resolution: "@babel/plugin-transform-react-display-name@npm:7.28.0" dependencies: @@ -2104,18 +1480,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-self@npm:^7.0.0": - version: 7.22.5 - resolution: "@babel/plugin-transform-react-jsx-self@npm:7.22.5" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.22.5" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/263091bdede1f448cb2c59b84eb69972c15d3f022c929a75337bd20d8b65551ac38cd26dad1946eaa93289643506b10ddaea3445a28cb8fca5a773a22a0df90b - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx-self@npm:^7.24.7": +"@babel/plugin-transform-react-jsx-self@npm:^7.0.0, @babel/plugin-transform-react-jsx-self@npm:^7.24.7": version: 7.27.1 resolution: "@babel/plugin-transform-react-jsx-self@npm:7.27.1" dependencies: @@ -2137,22 +1502,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx@npm:^7.0.0, @babel/plugin-transform-react-jsx@npm:^7.22.0, @babel/plugin-transform-react-jsx@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-react-jsx@npm:7.27.1" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.27.1" - "@babel/helper-module-imports": "npm:^7.27.1" - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/plugin-syntax-jsx": "npm:^7.27.1" - "@babel/types": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/1a08637c39fc78c9760dd4a3ed363fdbc762994bf83ed7872ad5bda0232fcd0fc557332f2ce36b522c0226dfd9cc8faac6b88eddda535f24825198a689e571af - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx@npm:^7.25.2": +"@babel/plugin-transform-react-jsx@npm:^7.0.0, @babel/plugin-transform-react-jsx@npm:^7.22.0, @babel/plugin-transform-react-jsx@npm:^7.25.2, @babel/plugin-transform-react-jsx@npm:^7.27.1": version: 7.28.6 resolution: "@babel/plugin-transform-react-jsx@npm:7.28.6" dependencies: @@ -2190,29 +1540,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.28.0": - version: 7.28.1 - resolution: "@babel/plugin-transform-regenerator@npm:7.28.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/6c9e6eb80ce9c0bde0876c80979e078fbc85dc802272cba4ee72b5b1c858472e38167c418917e4f0d4384ce888706d95544a8d266880c0e199e167e078168b67 - languageName: node - linkType: hard - -"@babel/plugin-transform-regexp-modifiers@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-regexp-modifiers@npm:7.27.1" - dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.27.1" - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/31ae596ab56751cf43468a6c0a9d6bc3521d306d2bee9c6957cdb64bea53812ce24bd13a32f766150d62b737bca5b0650b2c62db379382fff0dccbf076055c33 - languageName: node - linkType: hard - "@babel/plugin-transform-regexp-modifiers@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-regexp-modifiers@npm:7.28.6" @@ -2236,23 +1563,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-runtime@npm:^7.0.0": - version: 7.22.10 - resolution: "@babel/plugin-transform-runtime@npm:7.22.10" - dependencies: - "@babel/helper-module-imports": "npm:^7.22.5" - "@babel/helper-plugin-utils": "npm:^7.22.5" - babel-plugin-polyfill-corejs2: "npm:^0.4.5" - babel-plugin-polyfill-corejs3: "npm:^0.8.3" - babel-plugin-polyfill-regenerator: "npm:^0.5.2" - semver: "npm:^6.3.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/3c9fe6dacc520e85e416a3a041f9cb7da9f77dcb53a2845b81f71df31716f5d855fdddcbc127cc52bd61deb874f210c710571a4e2b17a769ada00eb62e1e1d3b - languageName: node - linkType: hard - -"@babel/plugin-transform-runtime@npm:^7.24.7": +"@babel/plugin-transform-runtime@npm:^7.0.0, @babel/plugin-transform-runtime@npm:^7.24.7": version: 7.28.5 resolution: "@babel/plugin-transform-runtime@npm:7.28.5" dependencies: @@ -2279,19 +1590,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.0.0, @babel/plugin-transform-spread@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-spread@npm:7.27.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/b34fc58b33bd35b47d67416655c2cbc8578fbb3948b4592bc15eb6d8b4046986e25c06e3b9929460fa4ab08e9653582415e7ef8b87d265e1239251bdf5a4c162 - languageName: node - linkType: hard - -"@babel/plugin-transform-spread@npm:^7.24.7, @babel/plugin-transform-spread@npm:^7.28.6": +"@babel/plugin-transform-spread@npm:^7.0.0, @babel/plugin-transform-spread@npm:^7.24.7, @babel/plugin-transform-spread@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-spread@npm:7.28.6" dependencies: @@ -2336,22 +1635,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-typescript@npm:^7.22.0, @babel/plugin-transform-typescript@npm:^7.27.1, @babel/plugin-transform-typescript@npm:^7.5.0": - version: 7.28.0 - resolution: "@babel/plugin-transform-typescript@npm:7.28.0" - dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.27.3" - "@babel/helper-create-class-features-plugin": "npm:^7.27.1" - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.27.1" - "@babel/plugin-syntax-typescript": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/049c2bd3407bbf5041d8c95805a4fadee6d176e034f6b94ce7967b92a846f1e00f323cf7dfbb2d06c93485f241fb8cf4c10520e30096a6059d251b94e80386e9 - languageName: node - linkType: hard - -"@babel/plugin-transform-typescript@npm:^7.25.2, @babel/plugin-transform-typescript@npm:^7.28.5": +"@babel/plugin-transform-typescript@npm:^7.22.0, @babel/plugin-transform-typescript@npm:^7.25.2, @babel/plugin-transform-typescript@npm:^7.28.5, @babel/plugin-transform-typescript@npm:^7.5.0": version: 7.28.6 resolution: "@babel/plugin-transform-typescript@npm:7.28.6" dependencies: @@ -2377,18 +1661,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-unicode-property-regex@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.27.1" - dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.27.1" - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/a332bc3cb3eeea67c47502bc52d13a0f8abae5a7bfcb08b93a8300ddaff8d9e1238f912969494c1b494c1898c6f19687054440706700b6d12cb0b90d88beb4d0 - languageName: node - linkType: hard - "@babel/plugin-transform-unicode-property-regex@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.28.6" @@ -2413,18 +1685,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-unicode-sets-regex@npm:^7.27.1": - version: 7.27.1 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.27.1" - dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.27.1" - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 10c0/236645f4d0a1fba7c18dc8ffe3975933af93e478f2665650c2d91cf528cfa1587cde5cfe277e0e501fc03b5bf57638369575d6539cef478632fb93bd7d7d7178 - languageName: node - linkType: hard - "@babel/plugin-transform-unicode-sets-regex@npm:^7.28.6": version: 7.28.6 resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.28.6" @@ -2437,93 +1697,13 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:^7.0.0": - version: 7.28.0 - resolution: "@babel/preset-env@npm:7.28.0" +"@babel/preset-env@npm:^7.0.0, @babel/preset-env@npm:^7.20.0": + version: 7.28.6 + resolution: "@babel/preset-env@npm:7.28.6" dependencies: - "@babel/compat-data": "npm:^7.28.0" - "@babel/helper-compilation-targets": "npm:^7.27.2" - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/helper-validator-option": "npm:^7.27.1" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.27.1" - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.27.1" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.27.1" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.27.1" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.27.1" - "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" - "@babel/plugin-syntax-import-assertions": "npm:^7.27.1" - "@babel/plugin-syntax-import-attributes": "npm:^7.27.1" - "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" - "@babel/plugin-transform-arrow-functions": "npm:^7.27.1" - "@babel/plugin-transform-async-generator-functions": "npm:^7.28.0" - "@babel/plugin-transform-async-to-generator": "npm:^7.27.1" - "@babel/plugin-transform-block-scoped-functions": "npm:^7.27.1" - "@babel/plugin-transform-block-scoping": "npm:^7.28.0" - "@babel/plugin-transform-class-properties": "npm:^7.27.1" - "@babel/plugin-transform-class-static-block": "npm:^7.27.1" - "@babel/plugin-transform-classes": "npm:^7.28.0" - "@babel/plugin-transform-computed-properties": "npm:^7.27.1" - "@babel/plugin-transform-destructuring": "npm:^7.28.0" - "@babel/plugin-transform-dotall-regex": "npm:^7.27.1" - "@babel/plugin-transform-duplicate-keys": "npm:^7.27.1" - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.27.1" - "@babel/plugin-transform-dynamic-import": "npm:^7.27.1" - "@babel/plugin-transform-explicit-resource-management": "npm:^7.28.0" - "@babel/plugin-transform-exponentiation-operator": "npm:^7.27.1" - "@babel/plugin-transform-export-namespace-from": "npm:^7.27.1" - "@babel/plugin-transform-for-of": "npm:^7.27.1" - "@babel/plugin-transform-function-name": "npm:^7.27.1" - "@babel/plugin-transform-json-strings": "npm:^7.27.1" - "@babel/plugin-transform-literals": "npm:^7.27.1" - "@babel/plugin-transform-logical-assignment-operators": "npm:^7.27.1" - "@babel/plugin-transform-member-expression-literals": "npm:^7.27.1" - "@babel/plugin-transform-modules-amd": "npm:^7.27.1" - "@babel/plugin-transform-modules-commonjs": "npm:^7.27.1" - "@babel/plugin-transform-modules-systemjs": "npm:^7.27.1" - "@babel/plugin-transform-modules-umd": "npm:^7.27.1" - "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.27.1" - "@babel/plugin-transform-new-target": "npm:^7.27.1" - "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.27.1" - "@babel/plugin-transform-numeric-separator": "npm:^7.27.1" - "@babel/plugin-transform-object-rest-spread": "npm:^7.28.0" - "@babel/plugin-transform-object-super": "npm:^7.27.1" - "@babel/plugin-transform-optional-catch-binding": "npm:^7.27.1" - "@babel/plugin-transform-optional-chaining": "npm:^7.27.1" - "@babel/plugin-transform-parameters": "npm:^7.27.7" - "@babel/plugin-transform-private-methods": "npm:^7.27.1" - "@babel/plugin-transform-private-property-in-object": "npm:^7.27.1" - "@babel/plugin-transform-property-literals": "npm:^7.27.1" - "@babel/plugin-transform-regenerator": "npm:^7.28.0" - "@babel/plugin-transform-regexp-modifiers": "npm:^7.27.1" - "@babel/plugin-transform-reserved-words": "npm:^7.27.1" - "@babel/plugin-transform-shorthand-properties": "npm:^7.27.1" - "@babel/plugin-transform-spread": "npm:^7.27.1" - "@babel/plugin-transform-sticky-regex": "npm:^7.27.1" - "@babel/plugin-transform-template-literals": "npm:^7.27.1" - "@babel/plugin-transform-typeof-symbol": "npm:^7.27.1" - "@babel/plugin-transform-unicode-escapes": "npm:^7.27.1" - "@babel/plugin-transform-unicode-property-regex": "npm:^7.27.1" - "@babel/plugin-transform-unicode-regex": "npm:^7.27.1" - "@babel/plugin-transform-unicode-sets-regex": "npm:^7.27.1" - "@babel/preset-modules": "npm:0.1.6-no-external-plugins" - babel-plugin-polyfill-corejs2: "npm:^0.4.14" - babel-plugin-polyfill-corejs3: "npm:^0.13.0" - babel-plugin-polyfill-regenerator: "npm:^0.6.5" - core-js-compat: "npm:^3.43.0" - semver: "npm:^6.3.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/f343103b8f0e8da5be4ae031aff8bf35da4764997af4af78ae9506f421b785dd45da1bc09f845b1fc308c8b7d134aead4a1f89e7fb6e213cd2f9fe1d2aa78bc9 - languageName: node - linkType: hard - -"@babel/preset-env@npm:^7.20.0": - version: 7.28.6 - resolution: "@babel/preset-env@npm:7.28.6" - dependencies: - "@babel/compat-data": "npm:^7.28.6" - "@babel/helper-compilation-targets": "npm:^7.28.6" - "@babel/helper-plugin-utils": "npm:^7.28.6" + "@babel/compat-data": "npm:^7.28.6" + "@babel/helper-compilation-targets": "npm:^7.28.6" + "@babel/helper-plugin-utils": "npm:^7.28.6" "@babel/helper-validator-option": "npm:^7.27.1" "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.28.5" "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.27.1" @@ -2639,22 +1819,7 @@ __metadata: languageName: node linkType: hard -"@babel/preset-typescript@npm:^7.0.0, @babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.24.7": - version: 7.27.1 - resolution: "@babel/preset-typescript@npm:7.27.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - "@babel/helper-validator-option": "npm:^7.27.1" - "@babel/plugin-syntax-jsx": "npm:^7.27.1" - "@babel/plugin-transform-modules-commonjs": "npm:^7.27.1" - "@babel/plugin-transform-typescript": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/cba6ca793d915f8aff9fe2f13b0dfbf5fd3f2e9a17f17478ec9878e9af0d206dcfe93154b9fd353727f16c1dca7c7a3ceb4943f8d28b216235f106bc0fbbcaa3 - languageName: node - linkType: hard - -"@babel/preset-typescript@npm:^7.20.0": +"@babel/preset-typescript@npm:^7.0.0, @babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.20.0, @babel/preset-typescript@npm:^7.24.7": version: 7.28.5 resolution: "@babel/preset-typescript@npm:7.28.5" dependencies: @@ -2691,18 +1856,7 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.0.0, @babel/template@npm:^7.27.1, @babel/template@npm:^7.27.2, @babel/template@npm:^7.3.3": - version: 7.27.2 - resolution: "@babel/template@npm:7.27.2" - dependencies: - "@babel/code-frame": "npm:^7.27.1" - "@babel/parser": "npm:^7.27.2" - "@babel/types": "npm:^7.27.1" - checksum: 10c0/ed9e9022651e463cc5f2cc21942f0e74544f1754d231add6348ff1b472985a3b3502041c0be62dc99ed2d12cfae0c51394bf827452b98a2f8769c03b87aadc81 - languageName: node - linkType: hard - -"@babel/template@npm:^7.25.0, @babel/template@npm:^7.28.6": +"@babel/template@npm:^7.0.0, @babel/template@npm:^7.25.0, @babel/template@npm:^7.27.1, @babel/template@npm:^7.28.6, @babel/template@npm:^7.3.3": version: 7.28.6 resolution: "@babel/template@npm:7.28.6" dependencies: @@ -2713,7 +1867,7 @@ __metadata: languageName: node linkType: hard -"@babel/traverse--for-generate-function-map@npm:@babel/traverse@^7.25.3, @babel/traverse@npm:^7.16.0, @babel/traverse@npm:^7.25.3, @babel/traverse@npm:^7.28.5, @babel/traverse@npm:^7.28.6": +"@babel/traverse--for-generate-function-map@npm:@babel/traverse@^7.25.3, @babel/traverse@npm:^7.16.0, @babel/traverse@npm:^7.20.0, @babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.25.3, @babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.28.5, @babel/traverse@npm:^7.28.6": version: 7.28.6 resolution: "@babel/traverse@npm:7.28.6" dependencies: @@ -2728,32 +1882,7 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.20.0, @babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.27.3, @babel/traverse@npm:^7.28.0": - version: 7.28.0 - resolution: "@babel/traverse@npm:7.28.0" - dependencies: - "@babel/code-frame": "npm:^7.27.1" - "@babel/generator": "npm:^7.28.0" - "@babel/helper-globals": "npm:^7.28.0" - "@babel/parser": "npm:^7.28.0" - "@babel/template": "npm:^7.27.2" - "@babel/types": "npm:^7.28.0" - debug: "npm:^4.3.1" - checksum: 10c0/32794402457827ac558173bcebdcc0e3a18fa339b7c41ca35621f9f645f044534d91bb923ff385f5f960f2e495f56ce18d6c7b0d064d2f0ccb55b285fa6bc7b9 - languageName: node - linkType: hard - -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.24.7, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.27.6, @babel/types@npm:^7.28.0, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": - version: 7.28.0 - resolution: "@babel/types@npm:7.28.0" - dependencies: - "@babel/helper-string-parser": "npm:^7.27.1" - "@babel/helper-validator-identifier": "npm:^7.27.1" - checksum: 10c0/7ca8521bf5e2d2ed4db31176efaaf94463a6b7a4d16dcc60e34e963b3596c2ecadb85457bebed13a9ee9a5829ef5f515d05b55a991b6a8f3b835451843482e39 - languageName: node - linkType: hard - -"@babel/types@npm:^7.25.2, @babel/types@npm:^7.28.5, @babel/types@npm:^7.28.6": +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.2, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.28.5, @babel/types@npm:^7.28.6, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": version: 7.28.6 resolution: "@babel/types@npm:7.28.6" dependencies: @@ -3189,18 +2318,7 @@ __metadata: languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": - version: 4.7.0 - resolution: "@eslint-community/eslint-utils@npm:4.7.0" - dependencies: - eslint-visitor-keys: "npm:^3.4.3" - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: 10c0/c0f4f2bd73b7b7a9de74b716a664873d08ab71ab439e51befe77d61915af41a81ecec93b408778b3a7856185244c34c2c8ee28912072ec14def84ba2dec70adf - languageName: node - linkType: hard - -"@eslint-community/eslint-utils@npm:^4.8.0, @eslint-community/eslint-utils@npm:^4.9.1": +"@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.4.0, @eslint-community/eslint-utils@npm:^4.8.0, @eslint-community/eslint-utils@npm:^4.9.1": version: 4.9.1 resolution: "@eslint-community/eslint-utils@npm:4.9.1" dependencies: @@ -3211,31 +2329,13 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.11.0, @eslint-community/regexpp@npm:^4.12.1": - version: 4.12.1 - resolution: "@eslint-community/regexpp@npm:4.12.1" - checksum: 10c0/a03d98c246bcb9109aec2c08e4d10c8d010256538dcb3f56610191607214523d4fb1b00aa81df830b6dffb74c5fa0be03642513a289c567949d3e550ca11cdf6 - languageName: node - linkType: hard - -"@eslint-community/regexpp@npm:^4.12.2": +"@eslint-community/regexpp@npm:^4.11.0, @eslint-community/regexpp@npm:^4.12.1, @eslint-community/regexpp@npm:^4.12.2": version: 4.12.2 resolution: "@eslint-community/regexpp@npm:4.12.2" checksum: 10c0/fddcbc66851b308478d04e302a4d771d6917a0b3740dc351513c0da9ca2eab8a1adf99f5e0aa7ab8b13fa0df005c81adeee7e63a92f3effd7d367a163b721c2d languageName: node linkType: hard -"@eslint/config-array@npm:^0.21.0": - version: 0.21.0 - resolution: "@eslint/config-array@npm:0.21.0" - dependencies: - "@eslint/object-schema": "npm:^2.1.6" - debug: "npm:^4.3.1" - minimatch: "npm:^3.1.2" - checksum: 10c0/0ea801139166c4aa56465b309af512ef9b2d3c68f9198751bbc3e21894fe70f25fbf26e1b0e9fffff41857bc21bfddeee58649ae6d79aadcd747db0c5dca771f - languageName: node - linkType: hard - "@eslint/config-array@npm:^0.21.1": version: 0.21.1 resolution: "@eslint/config-array@npm:0.21.1" @@ -3247,13 +2347,6 @@ __metadata: languageName: node linkType: hard -"@eslint/config-helpers@npm:^0.3.0": - version: 0.3.0 - resolution: "@eslint/config-helpers@npm:0.3.0" - checksum: 10c0/013ae7b189eeae8b30cc2ee87bc5c9c091a9cd615579003290eb28bebad5d78806a478e74ba10b3fe08ed66975b52af7d2cd4b4b43990376412b14e5664878c8 - languageName: node - linkType: hard - "@eslint/config-helpers@npm:^0.4.2": version: 0.4.2 resolution: "@eslint/config-helpers@npm:0.4.2" @@ -3263,24 +2356,6 @@ __metadata: languageName: node linkType: hard -"@eslint/core@npm:^0.14.0": - version: 0.14.0 - resolution: "@eslint/core@npm:0.14.0" - dependencies: - "@types/json-schema": "npm:^7.0.15" - checksum: 10c0/259f279445834ba2d2cbcc18e9d43202a4011fde22f29d5fb802181d66e0f6f0bd1f6b4b4b46663451f545d35134498231bd5e656e18d9034a457824b92b7741 - languageName: node - linkType: hard - -"@eslint/core@npm:^0.15.1": - version: 0.15.1 - resolution: "@eslint/core@npm:0.15.1" - dependencies: - "@types/json-schema": "npm:^7.0.15" - checksum: 10c0/abaf641940776638b8c15a38d99ce0dac551a8939310ec81b9acd15836a574cf362588eaab03ab11919bc2a0f9648b19ea8dee33bf12675eb5b6fd38bda6f25e - languageName: node - linkType: hard - "@eslint/core@npm:^0.17.0": version: 0.17.0 resolution: "@eslint/core@npm:0.17.0" @@ -3307,27 +2382,13 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:9.30.1, @eslint/js@npm:^9.0.0": - version: 9.30.1 - resolution: "@eslint/js@npm:9.30.1" - checksum: 10c0/17fc382a0deafdb1cadac1269d9c2f2464f025bde6e4d12fc4f4775eb9886b41340d4650b72e85a53423644fdc89bf59c987a852f27379ad25feecf2c5bbc1c9 - languageName: node - linkType: hard - -"@eslint/js@npm:9.39.2": +"@eslint/js@npm:9.39.2, @eslint/js@npm:^9.0.0": version: 9.39.2 resolution: "@eslint/js@npm:9.39.2" checksum: 10c0/00f51c52b04ac79faebfaa65a9652b2093b9c924e945479f1f3945473f78aee83cbc76c8d70bbffbf06f7024626575b16d97b66eab16182e1d0d39daff2f26f5 languageName: node linkType: hard -"@eslint/object-schema@npm:^2.1.6": - version: 2.1.6 - resolution: "@eslint/object-schema@npm:2.1.6" - checksum: 10c0/b8cdb7edea5bc5f6a96173f8d768d3554a628327af536da2fc6967a93b040f2557114d98dbcdbf389d5a7b290985ad6a9ce5babc547f36fc1fde42e674d11a56 - languageName: node - linkType: hard - "@eslint/object-schema@npm:^2.1.7": version: 2.1.7 resolution: "@eslint/object-schema@npm:2.1.7" @@ -3335,16 +2396,6 @@ __metadata: languageName: node linkType: hard -"@eslint/plugin-kit@npm:^0.3.1": - version: 0.3.3 - resolution: "@eslint/plugin-kit@npm:0.3.3" - dependencies: - "@eslint/core": "npm:^0.15.1" - levn: "npm:^0.4.1" - checksum: 10c0/c61888eb8757abc0d25a53c1832f85521c2f347126c475eb32d3596be3505e8619e0ceddee7346d195089a2eb1633b61e6127a5772b8965a85eb9f55b8b1cebe - languageName: node - linkType: hard - "@eslint/plugin-kit@npm:^0.4.1": version: 0.4.1 resolution: "@eslint/plugin-kit@npm:0.4.1" @@ -4188,7 +3239,7 @@ __metadata: "@office-iss/react-native-win32": "npm:^0.74.0" "@office-iss/rex-win32": "npm:0.73.11-devmain.16.0.17615.15030" "@react-native/metro-babel-transformer": "npm:^0.74.0" - "@rnx-kit/metro-config": "npm:^2.0.0" + "@rnx-kit/metro-config": "catalog:" "@types/jasmine": "catalog:" "@types/node": "catalog:" "@types/react": "npm:~18.2.0" @@ -4747,7 +3798,7 @@ __metadata: "@fluentui-react-native/use-tokens": "workspace:*" "@react-native/babel-preset": "npm:^0.74.0" "@react-native/metro-config": "npm:^0.74.0" - "@rnx-kit/cli": "npm:^0.18.14" + "@rnx-kit/cli": "catalog:" "@types/react": "npm:~18.2.0" "@types/react-test-renderer": "npm:^18.2.0" react: "npm:18.2.0" @@ -5838,9 +4889,9 @@ __metadata: "@react-native/babel-preset": "npm:^0.74.0" "@react-native/metro-babel-transformer": "npm:^0.74.0" "@react-native/metro-config": "npm:^0.74.0" - "@rnx-kit/cli": "npm:^0.18.14" - "@rnx-kit/metro-config": "npm:^2.1.0" - "@rnx-kit/metro-resolver-symlinks": "npm:^0.2.5" + "@rnx-kit/cli": "catalog:" + "@rnx-kit/metro-config": "catalog:" + "@rnx-kit/metro-resolver-symlinks": "catalog:" "@types/jasmine": "catalog:" "@types/node": "catalog:" "@types/react": "npm:~18.2.0" @@ -5936,9 +4987,16 @@ __metadata: "@rnx-kit/cli": "catalog:" "@rnx-kit/metro-config": "catalog:" "@rnx-kit/metro-resolver-symlinks": "catalog:" + "@rnx-kit/metro-serializer": "npm:^2.0.3" + "@rnx-kit/metro-serializer-esbuild": "npm:^0.3.0" + "@rnx-kit/tools-react-native": "npm:^2.3.2" "@types/react": "npm:~19.1.0" "@types/react-test-renderer": "npm:^19.1.0" - metro-config: "npm:^0.83.1" + metro: "npm:^0.83.1" + metro-config: "npm:0.83.1" + metro-core: "npm:^0.83.1" + metro-runtime: "npm:^0.83.1" + oxc-resolver: "catalog:" react: "npm:19.1.0" react-native: "npm:^0.81.0" react-native-svg: "npm:^15.12.1" @@ -5969,12 +5027,14 @@ __metadata: "@react-native/metro-babel-transformer": "npm:^0.74.0" "@react-native/metro-config": "npm:^0.74.0" "@rnx-kit/babel-preset-metro-react-native": "catalog:" - "@rnx-kit/cli": "npm:^0.18.14" - "@rnx-kit/metro-config": "npm:^2.1.0" - "@rnx-kit/metro-resolver-symlinks": "npm:^0.2.5" + "@rnx-kit/cli": "catalog:" + "@rnx-kit/metro-config": "catalog:" + "@rnx-kit/metro-resolver-symlinks": "catalog:" + "@rnx-kit/metro-serializer-esbuild": "npm:^0.3.0" "@types/react": "npm:~18.2.0" "@types/react-test-renderer": "npm:^18.2.0" metro-config: "npm:^0.80.3" + oxc-resolver: "catalog:" react: "npm:18.2.0" react-native: "npm:^0.74.0" react-native-svg: "npm:>=15.4.0 <15.13.0" @@ -6016,9 +5076,9 @@ __metadata: "@react-native/babel-preset": "npm:^0.74.0" "@react-native/metro-babel-transformer": "npm:^0.74.0" "@react-native/metro-config": "npm:^0.74.0" - "@rnx-kit/cli": "npm:^0.18.14" - "@rnx-kit/metro-config": "npm:^2.1.0" - "@rnx-kit/metro-resolver-symlinks": "npm:^0.2.5" + "@rnx-kit/cli": "catalog:" + "@rnx-kit/metro-config": "catalog:" + "@rnx-kit/metro-resolver-symlinks": "catalog:" "@svgr/core": "npm:^8.1.0" "@svgr/plugin-jsx": "npm:^8.1.0" "@svgr/plugin-svgo": "npm:^8.1.0" @@ -6034,6 +5094,7 @@ __metadata: expect-webdriverio: "catalog:" flow-bin: "npm:^0.113.0" metro-config: "npm:^0.80.3" + oxc-resolver: "catalog:" path-dirname: "npm:^1.0.2" react: "npm:18.2.0" react-native: "npm:^0.74.0" @@ -6505,7 +5566,7 @@ __metadata: "@fluentui-react-native/text": "workspace:*" "@react-native/babel-preset": "npm:^0.74.0" "@react-native/metro-config": "npm:^0.74.0" - "@rnx-kit/cli": "npm:^0.18.14" + "@rnx-kit/cli": "catalog:" "@types/react": "npm:~18.2.0" react: "npm:18.2.0" react-native: "npm:^0.74.0" @@ -7829,144 +6890,144 @@ __metadata: languageName: node linkType: hard -"@oxc-resolver/binding-android-arm-eabi@npm:11.16.3": - version: 11.16.3 - resolution: "@oxc-resolver/binding-android-arm-eabi@npm:11.16.3" +"@oxc-resolver/binding-android-arm-eabi@npm:11.17.0": + version: 11.17.0 + resolution: "@oxc-resolver/binding-android-arm-eabi@npm:11.17.0" conditions: os=android & cpu=arm languageName: node linkType: hard -"@oxc-resolver/binding-android-arm64@npm:11.16.3": - version: 11.16.3 - resolution: "@oxc-resolver/binding-android-arm64@npm:11.16.3" +"@oxc-resolver/binding-android-arm64@npm:11.17.0": + version: 11.17.0 + resolution: "@oxc-resolver/binding-android-arm64@npm:11.17.0" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@oxc-resolver/binding-darwin-arm64@npm:11.16.3": - version: 11.16.3 - resolution: "@oxc-resolver/binding-darwin-arm64@npm:11.16.3" +"@oxc-resolver/binding-darwin-arm64@npm:11.17.0": + version: 11.17.0 + resolution: "@oxc-resolver/binding-darwin-arm64@npm:11.17.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@oxc-resolver/binding-darwin-x64@npm:11.16.3": - version: 11.16.3 - resolution: "@oxc-resolver/binding-darwin-x64@npm:11.16.3" +"@oxc-resolver/binding-darwin-x64@npm:11.17.0": + version: 11.17.0 + resolution: "@oxc-resolver/binding-darwin-x64@npm:11.17.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@oxc-resolver/binding-freebsd-x64@npm:11.16.3": - version: 11.16.3 - resolution: "@oxc-resolver/binding-freebsd-x64@npm:11.16.3" +"@oxc-resolver/binding-freebsd-x64@npm:11.17.0": + version: 11.17.0 + resolution: "@oxc-resolver/binding-freebsd-x64@npm:11.17.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@oxc-resolver/binding-linux-arm-gnueabihf@npm:11.16.3": - version: 11.16.3 - resolution: "@oxc-resolver/binding-linux-arm-gnueabihf@npm:11.16.3" +"@oxc-resolver/binding-linux-arm-gnueabihf@npm:11.17.0": + version: 11.17.0 + resolution: "@oxc-resolver/binding-linux-arm-gnueabihf@npm:11.17.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@oxc-resolver/binding-linux-arm-musleabihf@npm:11.16.3": - version: 11.16.3 - resolution: "@oxc-resolver/binding-linux-arm-musleabihf@npm:11.16.3" +"@oxc-resolver/binding-linux-arm-musleabihf@npm:11.17.0": + version: 11.17.0 + resolution: "@oxc-resolver/binding-linux-arm-musleabihf@npm:11.17.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@oxc-resolver/binding-linux-arm64-gnu@npm:11.16.3": - version: 11.16.3 - resolution: "@oxc-resolver/binding-linux-arm64-gnu@npm:11.16.3" +"@oxc-resolver/binding-linux-arm64-gnu@npm:11.17.0": + version: 11.17.0 + resolution: "@oxc-resolver/binding-linux-arm64-gnu@npm:11.17.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@oxc-resolver/binding-linux-arm64-musl@npm:11.16.3": - version: 11.16.3 - resolution: "@oxc-resolver/binding-linux-arm64-musl@npm:11.16.3" +"@oxc-resolver/binding-linux-arm64-musl@npm:11.17.0": + version: 11.17.0 + resolution: "@oxc-resolver/binding-linux-arm64-musl@npm:11.17.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@oxc-resolver/binding-linux-ppc64-gnu@npm:11.16.3": - version: 11.16.3 - resolution: "@oxc-resolver/binding-linux-ppc64-gnu@npm:11.16.3" +"@oxc-resolver/binding-linux-ppc64-gnu@npm:11.17.0": + version: 11.17.0 + resolution: "@oxc-resolver/binding-linux-ppc64-gnu@npm:11.17.0" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@oxc-resolver/binding-linux-riscv64-gnu@npm:11.16.3": - version: 11.16.3 - resolution: "@oxc-resolver/binding-linux-riscv64-gnu@npm:11.16.3" +"@oxc-resolver/binding-linux-riscv64-gnu@npm:11.17.0": + version: 11.17.0 + resolution: "@oxc-resolver/binding-linux-riscv64-gnu@npm:11.17.0" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@oxc-resolver/binding-linux-riscv64-musl@npm:11.16.3": - version: 11.16.3 - resolution: "@oxc-resolver/binding-linux-riscv64-musl@npm:11.16.3" +"@oxc-resolver/binding-linux-riscv64-musl@npm:11.17.0": + version: 11.17.0 + resolution: "@oxc-resolver/binding-linux-riscv64-musl@npm:11.17.0" conditions: os=linux & cpu=riscv64 & libc=musl languageName: node linkType: hard -"@oxc-resolver/binding-linux-s390x-gnu@npm:11.16.3": - version: 11.16.3 - resolution: "@oxc-resolver/binding-linux-s390x-gnu@npm:11.16.3" +"@oxc-resolver/binding-linux-s390x-gnu@npm:11.17.0": + version: 11.17.0 + resolution: "@oxc-resolver/binding-linux-s390x-gnu@npm:11.17.0" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@oxc-resolver/binding-linux-x64-gnu@npm:11.16.3": - version: 11.16.3 - resolution: "@oxc-resolver/binding-linux-x64-gnu@npm:11.16.3" +"@oxc-resolver/binding-linux-x64-gnu@npm:11.17.0": + version: 11.17.0 + resolution: "@oxc-resolver/binding-linux-x64-gnu@npm:11.17.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@oxc-resolver/binding-linux-x64-musl@npm:11.16.3": - version: 11.16.3 - resolution: "@oxc-resolver/binding-linux-x64-musl@npm:11.16.3" +"@oxc-resolver/binding-linux-x64-musl@npm:11.17.0": + version: 11.17.0 + resolution: "@oxc-resolver/binding-linux-x64-musl@npm:11.17.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@oxc-resolver/binding-openharmony-arm64@npm:11.16.3": - version: 11.16.3 - resolution: "@oxc-resolver/binding-openharmony-arm64@npm:11.16.3" +"@oxc-resolver/binding-openharmony-arm64@npm:11.17.0": + version: 11.17.0 + resolution: "@oxc-resolver/binding-openharmony-arm64@npm:11.17.0" conditions: os=openharmony & cpu=arm64 languageName: node linkType: hard -"@oxc-resolver/binding-wasm32-wasi@npm:11.16.3": - version: 11.16.3 - resolution: "@oxc-resolver/binding-wasm32-wasi@npm:11.16.3" +"@oxc-resolver/binding-wasm32-wasi@npm:11.17.0": + version: 11.17.0 + resolution: "@oxc-resolver/binding-wasm32-wasi@npm:11.17.0" dependencies: "@napi-rs/wasm-runtime": "npm:^1.1.1" conditions: cpu=wasm32 languageName: node linkType: hard -"@oxc-resolver/binding-win32-arm64-msvc@npm:11.16.3": - version: 11.16.3 - resolution: "@oxc-resolver/binding-win32-arm64-msvc@npm:11.16.3" +"@oxc-resolver/binding-win32-arm64-msvc@npm:11.17.0": + version: 11.17.0 + resolution: "@oxc-resolver/binding-win32-arm64-msvc@npm:11.17.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@oxc-resolver/binding-win32-ia32-msvc@npm:11.16.3": - version: 11.16.3 - resolution: "@oxc-resolver/binding-win32-ia32-msvc@npm:11.16.3" +"@oxc-resolver/binding-win32-ia32-msvc@npm:11.17.0": + version: 11.17.0 + resolution: "@oxc-resolver/binding-win32-ia32-msvc@npm:11.17.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@oxc-resolver/binding-win32-x64-msvc@npm:11.16.3": - version: 11.16.3 - resolution: "@oxc-resolver/binding-win32-x64-msvc@npm:11.16.3" +"@oxc-resolver/binding-win32-x64-msvc@npm:11.17.0": + version: 11.17.0 + resolution: "@oxc-resolver/binding-win32-x64-msvc@npm:11.17.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -9129,7 +8190,7 @@ __metadata: languageName: node linkType: hard -"@rnx-kit/align-deps@npm:^3.1.0, @rnx-kit/align-deps@npm:^3.3.3, @rnx-kit/align-deps@npm:^3.4.0": +"@rnx-kit/align-deps@npm:^3.3.3, @rnx-kit/align-deps@npm:^3.4.0": version: 3.4.0 resolution: "@rnx-kit/align-deps@npm:3.4.0" bin: @@ -9170,43 +8231,6 @@ __metadata: languageName: node linkType: hard -"@rnx-kit/cli@npm:^0.18.14": - version: 0.18.14 - resolution: "@rnx-kit/cli@npm:0.18.14" - dependencies: - "@rnx-kit/align-deps": "npm:^3.1.0" - "@rnx-kit/config": "npm:^0.7.0" - "@rnx-kit/console": "npm:^2.0.0" - "@rnx-kit/metro-plugin-cyclic-dependencies-detector": "npm:^2.0.0" - "@rnx-kit/metro-plugin-duplicates-checker": "npm:^3.0.0" - "@rnx-kit/metro-plugin-typescript": "npm:^0.5.0" - "@rnx-kit/metro-serializer": "npm:^2.0.0" - "@rnx-kit/metro-serializer-esbuild": "npm:^0.2.6" - "@rnx-kit/metro-service": "npm:^4.0.2" - "@rnx-kit/third-party-notices": "npm:^2.0.0" - "@rnx-kit/tools-android": "npm:^0.2.1" - "@rnx-kit/tools-apple": "npm:^0.2.1" - "@rnx-kit/tools-filesystem": "npm:^0.1.0" - "@rnx-kit/tools-language": "npm:^3.0.0" - "@rnx-kit/tools-node": "npm:^3.0.0" - "@rnx-kit/tools-react-native": "npm:^2.0.3" - commander: "npm:^11.1.0" - ora: "npm:^5.4.1" - qrcode: "npm:^1.5.0" - peerDependencies: - jest: ">=26.0" - react-native: ">=0.64" - peerDependenciesMeta: - jest: - optional: true - react-native: - optional: true - bin: - rnx-cli: bin/rnx-cli.cjs - checksum: 10c0/1ab81f8d397ab40cdb1a97e60290ffd5772bc32df96e76648164d73ced9de5b25088c6abc9bb172679a0993ad873826788e8c1315ca2388e72d97743707c507a - languageName: node - linkType: hard - "@rnx-kit/cli@npm:^1.0.0": version: 1.0.0 resolution: "@rnx-kit/cli@npm:1.0.0" @@ -9310,24 +8334,6 @@ __metadata: languageName: node linkType: hard -"@rnx-kit/metro-config@npm:^2.0.0, @rnx-kit/metro-config@npm:^2.1.0": - version: 2.1.0 - resolution: "@rnx-kit/metro-config@npm:2.1.0" - dependencies: - "@rnx-kit/tools-node": "npm:^3.0.0" - "@rnx-kit/tools-react-native": "npm:^2.0.0" - "@rnx-kit/tools-workspaces": "npm:^0.2.0" - peerDependencies: - "@react-native/metro-config": "*" - react: "*" - react-native: "*" - peerDependenciesMeta: - "@react-native/metro-config": - optional: true - checksum: 10c0/718fac5ab96c7c8a96798e8cba241971a126b45bdd9b8f7513dbcd928e23fcb1fe646aaccdc02e74519bff4f6fddb27312e0cc649df7c69edba0d2271a0c2eb5 - languageName: node - linkType: hard - "@rnx-kit/metro-config@npm:^2.2.3": version: 2.2.3 resolution: "@rnx-kit/metro-config@npm:2.2.3" @@ -9368,20 +8374,6 @@ __metadata: languageName: node linkType: hard -"@rnx-kit/metro-plugin-typescript@npm:^0.5.0": - version: 0.5.1 - resolution: "@rnx-kit/metro-plugin-typescript@npm:0.5.1" - dependencies: - "@rnx-kit/config": "npm:^0.7.0" - "@rnx-kit/console": "npm:^2.0.0" - "@rnx-kit/tools-node": "npm:^3.0.0" - "@rnx-kit/tools-react-native": "npm:^2.0.0" - "@rnx-kit/typescript-service": "npm:^2.0.0" - typescript: "npm:>=4.7.0" - checksum: 10c0/ef18ad41815115a47428e5cbbbfbf5fe2ef52ac8fef7c8ccf3a48706ec51b8735a91d7c924ef1314fc1ea7f8eb98f76adaf1907940c5c4be9a1ccc4c3f5dbdd0 - languageName: node - linkType: hard - "@rnx-kit/metro-plugin-typescript@npm:^0.5.3": version: 0.5.3 resolution: "@rnx-kit/metro-plugin-typescript@npm:0.5.3" @@ -9413,37 +8405,6 @@ __metadata: languageName: node linkType: hard -"@rnx-kit/metro-resolver-symlinks@npm:^0.2.5": - version: 0.2.5 - resolution: "@rnx-kit/metro-resolver-symlinks@npm:0.2.5" - dependencies: - "@rnx-kit/console": "npm:^2.0.0" - "@rnx-kit/tools-node": "npm:^3.0.0" - "@rnx-kit/tools-react-native": "npm:^2.2.0" - enhanced-resolve: "npm:^5.8.3" - peerDependencies: - oxc-resolver: ^9.0.0 - peerDependenciesMeta: - oxc-resolver: - optional: true - checksum: 10c0/ab2a7d2e5a8278ba83575afc466eb9ab1fc90aa9845d5a1dcabf693cac85ce555f4ff162740fcf73cc7d553cd0060237f9cb323feced5adf4b5d266bf415479f - languageName: node - linkType: hard - -"@rnx-kit/metro-serializer-esbuild@npm:^0.2.6": - version: 0.2.6 - resolution: "@rnx-kit/metro-serializer-esbuild@npm:0.2.6" - dependencies: - "@rnx-kit/console": "npm:^2.0.0" - "@rnx-kit/tools-node": "npm:^3.0.2" - "@rnx-kit/tools-react-native": "npm:^2.3.0" - esbuild: "npm:^0.25.0" - esbuild-plugin-lodash: "npm:^1.2.0" - fast-glob: "npm:^3.2.7" - checksum: 10c0/be4644d01912e86d2647cd781c3d612144a1054d11434951c8d8eee2cbaba1168435709924756773cf08811103514dfe5aeec804ad4385238ef2d990510f628e - languageName: node - linkType: hard - "@rnx-kit/metro-serializer-esbuild@npm:^0.3.0": version: 0.3.0 resolution: "@rnx-kit/metro-serializer-esbuild@npm:0.3.0" @@ -9457,36 +8418,12 @@ __metadata: languageName: node linkType: hard -"@rnx-kit/metro-serializer@npm:^2.0.0": - version: 2.0.0 - resolution: "@rnx-kit/metro-serializer@npm:2.0.0" - dependencies: - "@rnx-kit/tools-react-native": "npm:^2.0.0" - semver: "npm:^7.0.0" - checksum: 10c0/1539a646e482bf556b6240023a13e797319a2adb8d107d2781414d294c1cf2d9e992c4a11ee523c9d2ed84eb5737adace39482355175fb66b366267790a0ef95 - languageName: node - linkType: hard - -"@rnx-kit/metro-service@npm:^4.0.2": - version: 4.0.2 - resolution: "@rnx-kit/metro-service@npm:4.0.2" +"@rnx-kit/metro-serializer@npm:^2.0.0, @rnx-kit/metro-serializer@npm:^2.0.3": + version: 2.0.3 + resolution: "@rnx-kit/metro-serializer@npm:2.0.3" dependencies: - "@rnx-kit/console": "npm:^2.0.0" - "@rnx-kit/tools-node": "npm:^3.0.0" - "@rnx-kit/tools-react-native": "npm:^2.0.0" - node-fetch: "npm:^2.6.7" - peerDependencies: - "@office-iss/react-native-win32": "*" - "@react-native/metro-config": "*" - metro-react-native-babel-transformer: ">=0.66.1" - peerDependenciesMeta: - "@office-iss/react-native-win32": - optional: true - "@react-native/metro-config": - optional: true - metro-react-native-babel-transformer: - optional: true - checksum: 10c0/2e3d8e9475f92dcead8586b63dc1693d9884a5aa6932b9d6a58f7ce3034d249ec96e4fba6307ed64b3acd642a14ef8df1f1742c647722df88fab75dc13f72627 + "@rnx-kit/tools-react-native": "npm:^2.3.0" + checksum: 10c0/4e34791a69298a24bfb65d5c91ecc675b2110a45381ebf25228d1c0155750c5a06484c6a32d868bd76bd105b4609fb166bb0119830c0f8570d46098c716b861a languageName: node linkType: hard @@ -9513,16 +8450,7 @@ __metadata: languageName: node linkType: hard -"@rnx-kit/react-native-host@npm:^0.5.0": - version: 0.5.15 - resolution: "@rnx-kit/react-native-host@npm:0.5.15" - peerDependencies: - react-native: ">=0.66" - checksum: 10c0/e3d1fed8fe9d4c033ced89a067fffd19113cc5f39b7eb2bbb892e706df811884cba80249e3d0601158b6c8643979f54c83a44c0f349db3f015eb695add9ac242 - languageName: node - linkType: hard - -"@rnx-kit/react-native-host@npm:^0.5.11": +"@rnx-kit/react-native-host@npm:^0.5.0, @rnx-kit/react-native-host@npm:^0.5.11": version: 0.5.16 resolution: "@rnx-kit/react-native-host@npm:0.5.16" peerDependencies: @@ -9554,15 +8482,6 @@ __metadata: languageName: node linkType: hard -"@rnx-kit/tools-android@npm:^0.2.1": - version: 0.2.1 - resolution: "@rnx-kit/tools-android@npm:0.2.1" - dependencies: - "@rnx-kit/tools-shell": "npm:^0.2.0" - checksum: 10c0/63ec0ffb0325b3dd541b80052ad17401084132daa7812613057e445c0431741447046ea6356d237530167ce6383d51dfe56b82b5672aa83ce3523c027a941fcf - languageName: node - linkType: hard - "@rnx-kit/tools-android@npm:^0.2.2": version: 0.2.2 resolution: "@rnx-kit/tools-android@npm:0.2.2" @@ -9572,16 +8491,6 @@ __metadata: languageName: node linkType: hard -"@rnx-kit/tools-apple@npm:^0.2.1": - version: 0.2.1 - resolution: "@rnx-kit/tools-apple@npm:0.2.1" - dependencies: - "@rnx-kit/tools-shell": "npm:^0.2.0" - fast-xml-parser: "npm:^4.0.0" - checksum: 10c0/dc587048484d3087a481840f96b467f70e6202b7c83217ed8b16b1454def2bd56e862111912eaa0679aafea8a7ff87fbe3e419d6ee75ac4cced7ef8f54699def - languageName: node - linkType: hard - "@rnx-kit/tools-apple@npm:^0.2.2": version: 0.2.2 resolution: "@rnx-kit/tools-apple@npm:0.2.2" @@ -9599,13 +8508,6 @@ __metadata: languageName: node linkType: hard -"@rnx-kit/tools-language@npm:^3.0.0": - version: 3.0.0 - resolution: "@rnx-kit/tools-language@npm:3.0.0" - checksum: 10c0/159b9bfce500b652e65367f425197afa8f54b652c71968047d6e64e2ebf34cbacf63217f6159fd987409cc5cd7a94eb0f11dee8fa5910a1a388ea28d9ca60525 - languageName: node - linkType: hard - "@rnx-kit/tools-language@npm:^3.0.1": version: 3.0.1 resolution: "@rnx-kit/tools-language@npm:3.0.1" @@ -9613,7 +8515,7 @@ __metadata: languageName: node linkType: hard -"@rnx-kit/tools-node@npm:^3.0.0, @rnx-kit/tools-node@npm:^3.0.1, @rnx-kit/tools-node@npm:^3.0.2, @rnx-kit/tools-node@npm:^3.0.3": +"@rnx-kit/tools-node@npm:^3.0.0, @rnx-kit/tools-node@npm:^3.0.1, @rnx-kit/tools-node@npm:^3.0.3": version: 3.0.3 resolution: "@rnx-kit/tools-node@npm:3.0.3" checksum: 10c0/5fa2123cb156fc6d268c95b2fa094b3ccf5f264ff5dcfd08f024454f45972093144e5745d4bcbe84e8f731faf01b7bfb6d3bca3e7c97ec89da3fc2e3e1121959 @@ -9630,7 +8532,7 @@ __metadata: languageName: node linkType: hard -"@rnx-kit/tools-react-native@npm:^2.0.0, @rnx-kit/tools-react-native@npm:^2.0.3, @rnx-kit/tools-react-native@npm:^2.1.0, @rnx-kit/tools-react-native@npm:^2.2.0, @rnx-kit/tools-react-native@npm:^2.3.0, @rnx-kit/tools-react-native@npm:^2.3.1, @rnx-kit/tools-react-native@npm:^2.3.2": +"@rnx-kit/tools-react-native@npm:^2.0.0, @rnx-kit/tools-react-native@npm:^2.1.0, @rnx-kit/tools-react-native@npm:^2.3.0, @rnx-kit/tools-react-native@npm:^2.3.1, @rnx-kit/tools-react-native@npm:^2.3.2": version: 2.3.2 resolution: "@rnx-kit/tools-react-native@npm:2.3.2" dependencies: @@ -9639,13 +8541,6 @@ __metadata: languageName: node linkType: hard -"@rnx-kit/tools-shell@npm:^0.2.0": - version: 0.2.1 - resolution: "@rnx-kit/tools-shell@npm:0.2.1" - checksum: 10c0/f8b531ba0e62bcb384150d3f0d1ed8d6b308dfd6379b9ca0b526afb1fd0964645fceb972e9ab896f78d4fe49584b9e7b8abff89e9863d880ca6ce2db0758b7d7 - languageName: node - linkType: hard - "@rnx-kit/tools-shell@npm:^0.2.2": version: 0.2.2 resolution: "@rnx-kit/tools-shell@npm:0.2.2" @@ -9689,18 +8584,7 @@ __metadata: languageName: node linkType: hard -"@rnx-kit/typescript-service@npm:^2.0.0": - version: 2.0.1 - resolution: "@rnx-kit/typescript-service@npm:2.0.1" - dependencies: - "@rnx-kit/tools-node": "npm:^3.0.0" - peerDependencies: - typescript: ">=4.0" - checksum: 10c0/651fd80a6c248639f903bb2074ad64f3586eec4e227c2b7787970db55c2309acc240f7f32225971f027988999c5d530d1ec9644d9b1760572074f2ecde06e862 - languageName: node - linkType: hard - -"@rnx-kit/typescript-service@npm:^2.0.2": +"@rnx-kit/typescript-service@npm:^2.0.0, @rnx-kit/typescript-service@npm:^2.0.2": version: 2.0.2 resolution: "@rnx-kit/typescript-service@npm:2.0.2" dependencies: @@ -10346,7 +9230,7 @@ __metadata: languageName: node linkType: hard -"@types/yargs@npm:^17.0.33": +"@types/yargs@npm:^17.0.33, @types/yargs@npm:^17.0.8": version: 17.0.35 resolution: "@types/yargs@npm:17.0.35" dependencies: @@ -10355,15 +9239,6 @@ __metadata: languageName: node linkType: hard -"@types/yargs@npm:^17.0.8": - version: 17.0.22 - resolution: "@types/yargs@npm:17.0.22" - dependencies: - "@types/yargs-parser": "npm:*" - checksum: 10c0/1c5ed11692e495c49caf3c7cb2ec2aa973634cc7298ce4ecf8255177d908040cf51ced53731553380727a42299f06645c24d3c6eaa38cbd5d910ed0e332c9530 - languageName: node - linkType: hard - "@types/yauzl@npm:^2.9.1": version: 2.10.0 resolution: "@types/yauzl@npm:2.10.0" @@ -11927,21 +10802,7 @@ __metadata: languageName: node linkType: hard -"array-includes@npm:^3.1.5, array-includes@npm:^3.1.8": - version: 3.1.8 - resolution: "array-includes@npm:3.1.8" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.2" - es-object-atoms: "npm:^1.0.0" - get-intrinsic: "npm:^1.2.4" - is-string: "npm:^1.0.7" - checksum: 10c0/5b1004d203e85873b96ddc493f090c9672fd6c80d7a60b798da8a14bff8a670ff95db5aafc9abc14a211943f05220dacf8ea17638ae0af1a6a47b8c0b48ce370 - languageName: node - linkType: hard - -"array-includes@npm:^3.1.9": +"array-includes@npm:^3.1.5, array-includes@npm:^3.1.8, array-includes@npm:^3.1.9": version: 3.1.9 resolution: "array-includes@npm:3.1.9" dependencies: @@ -12307,7 +11168,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs2@npm:^0.4.14, babel-plugin-polyfill-corejs2@npm:^0.4.5": +"babel-plugin-polyfill-corejs2@npm:^0.4.14": version: 0.4.14 resolution: "babel-plugin-polyfill-corejs2@npm:0.4.14" dependencies: @@ -12332,29 +11193,6 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.8.3": - version: 0.8.7 - resolution: "babel-plugin-polyfill-corejs3@npm:0.8.7" - dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.4.4" - core-js-compat: "npm:^3.33.1" - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10c0/094e40f4ab9f131408202063964d63740609fd4fdb70a5b6332b371761921b540ffbcee7a434c0199b8317dfb2ba4675eef674867215fd3b85e24054607c1501 - languageName: node - linkType: hard - -"babel-plugin-polyfill-regenerator@npm:^0.5.2": - version: 0.5.5 - resolution: "babel-plugin-polyfill-regenerator@npm:0.5.5" - dependencies: - "@babel/helper-define-polyfill-provider": "npm:^0.5.0" - peerDependencies: - "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 10c0/2aab692582082d54e0df9f9373dca1b223e65b4e7e96440160f27ed8803d417a1fa08da550f08aa3820d2010329ca91b68e2b6e9bd7aed51c93d46dfe79629bb - languageName: node - linkType: hard - "babel-plugin-polyfill-regenerator@npm:^0.6.5": version: 0.6.5 resolution: "babel-plugin-polyfill-regenerator@npm:0.6.5" @@ -13446,7 +12284,7 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.33.1, core-js-compat@npm:^3.43.0": +"core-js-compat@npm:^3.43.0": version: 3.44.0 resolution: "core-js-compat@npm:3.44.0" dependencies: @@ -13776,15 +12614,15 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:^4.4.1": - version: 4.4.1 - resolution: "debug@npm:4.4.1" +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:^4.4.0, debug@npm:^4.4.1, debug@npm:^4.4.3": + version: 4.4.3 + resolution: "debug@npm:4.4.3" dependencies: ms: "npm:^2.1.3" peerDependenciesMeta: supports-color: optional: true - checksum: 10c0/d2b44bc1afd912b49bb7ebb0d50a860dc93a4dd7d946e8de94abc957bb63726b7dd5aa48c18c2386c379ec024c46692e15ed3ed97d481729f929201e671fcd55 + checksum: 10c0/d79136ec6c83ecbefd0f6a5593da6a9c91ec4d7ddc4b54c883d6e71ec9accb5f67a1a5e96d00a328196b5b5c86d365e98d8a3a70856aaf16b4e7b1985e67f5a6 languageName: node linkType: hard @@ -13797,18 +12635,6 @@ __metadata: languageName: node linkType: hard -"debug@npm:^4.4.0, debug@npm:^4.4.3": - version: 4.4.3 - resolution: "debug@npm:4.4.3" - dependencies: - ms: "npm:^2.1.3" - peerDependenciesMeta: - supports-color: - optional: true - checksum: 10c0/d79136ec6c83ecbefd0f6a5593da6a9c91ec4d7ddc4b54c883d6e71ec9accb5f67a1a5e96d00a328196b5b5c86d365e98d8a3a70856aaf16b4e7b1985e67f5a6 - languageName: node - linkType: hard - "decamelize@npm:^1.2.0": version: 1.2.0 resolution: "decamelize@npm:1.2.0" @@ -14358,16 +13184,7 @@ __metadata: languageName: node linkType: hard -"envinfo@npm:^7.10.0, envinfo@npm:^7.5.0, envinfo@npm:^7.8.1": - version: 7.11.1 - resolution: "envinfo@npm:7.11.1" - bin: - envinfo: dist/cli.js - checksum: 10c0/4550cce03d4d8a7b137d548faaf9c920356474231636cb4a6e74ae75db3b9cb04aa0a052ee391e2363af5db697166c207ba76e106338d758c6126830b3e16d75 - languageName: node - linkType: hard - -"envinfo@npm:^7.13.0": +"envinfo@npm:^7.10.0, envinfo@npm:^7.13.0, envinfo@npm:^7.5.0, envinfo@npm:^7.8.1": version: 7.21.0 resolution: "envinfo@npm:7.21.0" bin: @@ -14411,69 +13228,7 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6, es-abstract@npm:^1.23.9": - version: 1.24.0 - resolution: "es-abstract@npm:1.24.0" - dependencies: - array-buffer-byte-length: "npm:^1.0.2" - arraybuffer.prototype.slice: "npm:^1.0.4" - available-typed-arrays: "npm:^1.0.7" - call-bind: "npm:^1.0.8" - call-bound: "npm:^1.0.4" - data-view-buffer: "npm:^1.0.2" - data-view-byte-length: "npm:^1.0.2" - data-view-byte-offset: "npm:^1.0.1" - es-define-property: "npm:^1.0.1" - es-errors: "npm:^1.3.0" - es-object-atoms: "npm:^1.1.1" - es-set-tostringtag: "npm:^2.1.0" - es-to-primitive: "npm:^1.3.0" - function.prototype.name: "npm:^1.1.8" - get-intrinsic: "npm:^1.3.0" - get-proto: "npm:^1.0.1" - get-symbol-description: "npm:^1.1.0" - globalthis: "npm:^1.0.4" - gopd: "npm:^1.2.0" - has-property-descriptors: "npm:^1.0.2" - has-proto: "npm:^1.2.0" - has-symbols: "npm:^1.1.0" - hasown: "npm:^2.0.2" - internal-slot: "npm:^1.1.0" - is-array-buffer: "npm:^3.0.5" - is-callable: "npm:^1.2.7" - is-data-view: "npm:^1.0.2" - is-negative-zero: "npm:^2.0.3" - is-regex: "npm:^1.2.1" - is-set: "npm:^2.0.3" - is-shared-array-buffer: "npm:^1.0.4" - is-string: "npm:^1.1.1" - is-typed-array: "npm:^1.1.15" - is-weakref: "npm:^1.1.1" - math-intrinsics: "npm:^1.1.0" - object-inspect: "npm:^1.13.4" - object-keys: "npm:^1.1.1" - object.assign: "npm:^4.1.7" - own-keys: "npm:^1.0.1" - regexp.prototype.flags: "npm:^1.5.4" - safe-array-concat: "npm:^1.1.3" - safe-push-apply: "npm:^1.0.0" - safe-regex-test: "npm:^1.1.0" - set-proto: "npm:^1.0.0" - stop-iteration-iterator: "npm:^1.1.0" - string.prototype.trim: "npm:^1.2.10" - string.prototype.trimend: "npm:^1.0.9" - string.prototype.trimstart: "npm:^1.0.8" - typed-array-buffer: "npm:^1.0.3" - typed-array-byte-length: "npm:^1.0.3" - typed-array-byte-offset: "npm:^1.0.4" - typed-array-length: "npm:^1.0.7" - unbox-primitive: "npm:^1.1.0" - which-typed-array: "npm:^1.1.19" - checksum: 10c0/b256e897be32df5d382786ce8cce29a1dd8c97efbab77a26609bd70f2ed29fbcfc7a31758cb07488d532e7ccccdfca76c1118f2afe5a424cdc05ca007867c318 - languageName: node - linkType: hard - -"es-abstract@npm:^1.24.0": +"es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6, es-abstract@npm:^1.23.9, es-abstract@npm:^1.24.0": version: 1.24.1 resolution: "es-abstract@npm:1.24.1" dependencies: @@ -14594,16 +13349,7 @@ __metadata: languageName: node linkType: hard -"es-shim-unscopables@npm:^1.0.2": - version: 1.0.2 - resolution: "es-shim-unscopables@npm:1.0.2" - dependencies: - hasown: "npm:^2.0.0" - checksum: 10c0/f495af7b4b7601a4c0cfb893581c352636e5c08654d129590386a33a0432cf13a7bdc7b6493801cadd990d838e2839b9013d1de3b880440cb537825e834fe783 - languageName: node - linkType: hard - -"es-shim-unscopables@npm:^1.1.0": +"es-shim-unscopables@npm:^1.0.2, es-shim-unscopables@npm:^1.1.0": version: 1.1.0 resolution: "es-shim-unscopables@npm:1.1.0" dependencies: @@ -14630,35 +13376,36 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.25.0, esbuild@npm:~0.25.0": - version: 0.25.5 - resolution: "esbuild@npm:0.25.5" +"esbuild@npm:^0.27.1": + version: 0.27.2 + resolution: "esbuild@npm:0.27.2" dependencies: - "@esbuild/aix-ppc64": "npm:0.25.5" - "@esbuild/android-arm": "npm:0.25.5" - "@esbuild/android-arm64": "npm:0.25.5" - "@esbuild/android-x64": "npm:0.25.5" - "@esbuild/darwin-arm64": "npm:0.25.5" - "@esbuild/darwin-x64": "npm:0.25.5" - "@esbuild/freebsd-arm64": "npm:0.25.5" - "@esbuild/freebsd-x64": "npm:0.25.5" - "@esbuild/linux-arm": "npm:0.25.5" - "@esbuild/linux-arm64": "npm:0.25.5" - "@esbuild/linux-ia32": "npm:0.25.5" - "@esbuild/linux-loong64": "npm:0.25.5" - "@esbuild/linux-mips64el": "npm:0.25.5" - "@esbuild/linux-ppc64": "npm:0.25.5" - "@esbuild/linux-riscv64": "npm:0.25.5" - "@esbuild/linux-s390x": "npm:0.25.5" - "@esbuild/linux-x64": "npm:0.25.5" - "@esbuild/netbsd-arm64": "npm:0.25.5" - "@esbuild/netbsd-x64": "npm:0.25.5" - "@esbuild/openbsd-arm64": "npm:0.25.5" - "@esbuild/openbsd-x64": "npm:0.25.5" - "@esbuild/sunos-x64": "npm:0.25.5" - "@esbuild/win32-arm64": "npm:0.25.5" - "@esbuild/win32-ia32": "npm:0.25.5" - "@esbuild/win32-x64": "npm:0.25.5" + "@esbuild/aix-ppc64": "npm:0.27.2" + "@esbuild/android-arm": "npm:0.27.2" + "@esbuild/android-arm64": "npm:0.27.2" + "@esbuild/android-x64": "npm:0.27.2" + "@esbuild/darwin-arm64": "npm:0.27.2" + "@esbuild/darwin-x64": "npm:0.27.2" + "@esbuild/freebsd-arm64": "npm:0.27.2" + "@esbuild/freebsd-x64": "npm:0.27.2" + "@esbuild/linux-arm": "npm:0.27.2" + "@esbuild/linux-arm64": "npm:0.27.2" + "@esbuild/linux-ia32": "npm:0.27.2" + "@esbuild/linux-loong64": "npm:0.27.2" + "@esbuild/linux-mips64el": "npm:0.27.2" + "@esbuild/linux-ppc64": "npm:0.27.2" + "@esbuild/linux-riscv64": "npm:0.27.2" + "@esbuild/linux-s390x": "npm:0.27.2" + "@esbuild/linux-x64": "npm:0.27.2" + "@esbuild/netbsd-arm64": "npm:0.27.2" + "@esbuild/netbsd-x64": "npm:0.27.2" + "@esbuild/openbsd-arm64": "npm:0.27.2" + "@esbuild/openbsd-x64": "npm:0.27.2" + "@esbuild/openharmony-arm64": "npm:0.27.2" + "@esbuild/sunos-x64": "npm:0.27.2" + "@esbuild/win32-arm64": "npm:0.27.2" + "@esbuild/win32-ia32": "npm:0.27.2" + "@esbuild/win32-x64": "npm:0.27.2" dependenciesMeta: "@esbuild/aix-ppc64": optional: true @@ -14702,6 +13449,8 @@ __metadata: optional: true "@esbuild/openbsd-x64": optional: true + "@esbuild/openharmony-arm64": + optional: true "@esbuild/sunos-x64": optional: true "@esbuild/win32-arm64": @@ -14712,40 +13461,39 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 10c0/aba8cbc11927fa77562722ed5e95541ce2853f67ad7bdc40382b558abc2e0ec57d92ffb820f082ba2047b4ef9f3bc3da068cdebe30dfd3850cfa3827a78d604e + checksum: 10c0/cf83f626f55500f521d5fe7f4bc5871bec240d3deb2a01fbd379edc43b3664d1167428738a5aad8794b35d1cca985c44c375b1cd38a2ca613c77ced2c83aafcd languageName: node linkType: hard -"esbuild@npm:^0.27.1": - version: 0.27.2 - resolution: "esbuild@npm:0.27.2" +"esbuild@npm:~0.25.0": + version: 0.25.5 + resolution: "esbuild@npm:0.25.5" dependencies: - "@esbuild/aix-ppc64": "npm:0.27.2" - "@esbuild/android-arm": "npm:0.27.2" - "@esbuild/android-arm64": "npm:0.27.2" - "@esbuild/android-x64": "npm:0.27.2" - "@esbuild/darwin-arm64": "npm:0.27.2" - "@esbuild/darwin-x64": "npm:0.27.2" - "@esbuild/freebsd-arm64": "npm:0.27.2" - "@esbuild/freebsd-x64": "npm:0.27.2" - "@esbuild/linux-arm": "npm:0.27.2" - "@esbuild/linux-arm64": "npm:0.27.2" - "@esbuild/linux-ia32": "npm:0.27.2" - "@esbuild/linux-loong64": "npm:0.27.2" - "@esbuild/linux-mips64el": "npm:0.27.2" - "@esbuild/linux-ppc64": "npm:0.27.2" - "@esbuild/linux-riscv64": "npm:0.27.2" - "@esbuild/linux-s390x": "npm:0.27.2" - "@esbuild/linux-x64": "npm:0.27.2" - "@esbuild/netbsd-arm64": "npm:0.27.2" - "@esbuild/netbsd-x64": "npm:0.27.2" - "@esbuild/openbsd-arm64": "npm:0.27.2" - "@esbuild/openbsd-x64": "npm:0.27.2" - "@esbuild/openharmony-arm64": "npm:0.27.2" - "@esbuild/sunos-x64": "npm:0.27.2" - "@esbuild/win32-arm64": "npm:0.27.2" - "@esbuild/win32-ia32": "npm:0.27.2" - "@esbuild/win32-x64": "npm:0.27.2" + "@esbuild/aix-ppc64": "npm:0.25.5" + "@esbuild/android-arm": "npm:0.25.5" + "@esbuild/android-arm64": "npm:0.25.5" + "@esbuild/android-x64": "npm:0.25.5" + "@esbuild/darwin-arm64": "npm:0.25.5" + "@esbuild/darwin-x64": "npm:0.25.5" + "@esbuild/freebsd-arm64": "npm:0.25.5" + "@esbuild/freebsd-x64": "npm:0.25.5" + "@esbuild/linux-arm": "npm:0.25.5" + "@esbuild/linux-arm64": "npm:0.25.5" + "@esbuild/linux-ia32": "npm:0.25.5" + "@esbuild/linux-loong64": "npm:0.25.5" + "@esbuild/linux-mips64el": "npm:0.25.5" + "@esbuild/linux-ppc64": "npm:0.25.5" + "@esbuild/linux-riscv64": "npm:0.25.5" + "@esbuild/linux-s390x": "npm:0.25.5" + "@esbuild/linux-x64": "npm:0.25.5" + "@esbuild/netbsd-arm64": "npm:0.25.5" + "@esbuild/netbsd-x64": "npm:0.25.5" + "@esbuild/openbsd-arm64": "npm:0.25.5" + "@esbuild/openbsd-x64": "npm:0.25.5" + "@esbuild/sunos-x64": "npm:0.25.5" + "@esbuild/win32-arm64": "npm:0.25.5" + "@esbuild/win32-ia32": "npm:0.25.5" + "@esbuild/win32-x64": "npm:0.25.5" dependenciesMeta: "@esbuild/aix-ppc64": optional: true @@ -14789,8 +13537,6 @@ __metadata: optional: true "@esbuild/openbsd-x64": optional: true - "@esbuild/openharmony-arm64": - optional: true "@esbuild/sunos-x64": optional: true "@esbuild/win32-arm64": @@ -14801,7 +13547,7 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 10c0/cf83f626f55500f521d5fe7f4bc5871bec240d3deb2a01fbd379edc43b3664d1167428738a5aad8794b35d1cca985c44c375b1cd38a2ca613c77ced2c83aafcd + checksum: 10c0/aba8cbc11927fa77562722ed5e95541ce2853f67ad7bdc40382b558abc2e0ec57d92ffb820f082ba2047b4ef9f3bc3da068cdebe30dfd3850cfa3827a78d604e languageName: node linkType: hard @@ -15009,98 +13755,48 @@ __metadata: prop-types: "npm:^15.8.1" resolve: "npm:^2.0.0-next.5" semver: "npm:^6.3.1" - string.prototype.matchall: "npm:^4.0.12" - string.prototype.repeat: "npm:^1.0.0" - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - checksum: 10c0/c850bfd556291d4d9234f5ca38db1436924a1013627c8ab1853f77cac73ec19b020e861e6c7b783436a48b6ffcdfba4547598235a37ad4611b6739f65fd8ad57 - languageName: node - linkType: hard - -"eslint-plugin-security@npm:1.4.0": - version: 1.4.0 - resolution: "eslint-plugin-security@npm:1.4.0" - dependencies: - safe-regex: "npm:^1.1.0" - checksum: 10c0/6f0865bbfc33f78fe9b897b8fcb3ca66fa1b6ac36afa780ebf3534cd3f50b65a82eb6cc67c08027a8e6b86c11225efdc4d8b7184d324d6b93b9125328e8b01a1 - languageName: node - linkType: hard - -"eslint-scope@npm:^8.4.0": - version: 8.4.0 - resolution: "eslint-scope@npm:8.4.0" - dependencies: - esrecurse: "npm:^4.3.0" - estraverse: "npm:^5.2.0" - checksum: 10c0/407f6c600204d0f3705bd557f81bd0189e69cd7996f408f8971ab5779c0af733d1af2f1412066b40ee1588b085874fc37a2333986c6521669cdbdd36ca5058e0 - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^3.4.3": - version: 3.4.3 - resolution: "eslint-visitor-keys@npm:3.4.3" - checksum: 10c0/92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820 - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^4.2.1": - version: 4.2.1 - resolution: "eslint-visitor-keys@npm:4.2.1" - checksum: 10c0/fcd43999199d6740db26c58dbe0c2594623e31ca307e616ac05153c9272f12f1364f5a0b1917a8e962268fdecc6f3622c1c2908b4fcc2e047a106fe6de69dc43 - languageName: node - linkType: hard - -"eslint@npm:^9.0.0": - version: 9.30.1 - resolution: "eslint@npm:9.30.1" - dependencies: - "@eslint-community/eslint-utils": "npm:^4.2.0" - "@eslint-community/regexpp": "npm:^4.12.1" - "@eslint/config-array": "npm:^0.21.0" - "@eslint/config-helpers": "npm:^0.3.0" - "@eslint/core": "npm:^0.14.0" - "@eslint/eslintrc": "npm:^3.3.1" - "@eslint/js": "npm:9.30.1" - "@eslint/plugin-kit": "npm:^0.3.1" - "@humanfs/node": "npm:^0.16.6" - "@humanwhocodes/module-importer": "npm:^1.0.1" - "@humanwhocodes/retry": "npm:^0.4.2" - "@types/estree": "npm:^1.0.6" - "@types/json-schema": "npm:^7.0.15" - ajv: "npm:^6.12.4" - chalk: "npm:^4.0.0" - cross-spawn: "npm:^7.0.6" - debug: "npm:^4.3.2" - escape-string-regexp: "npm:^4.0.0" - eslint-scope: "npm:^8.4.0" - eslint-visitor-keys: "npm:^4.2.1" - espree: "npm:^10.4.0" - esquery: "npm:^1.5.0" - esutils: "npm:^2.0.2" - fast-deep-equal: "npm:^3.1.3" - file-entry-cache: "npm:^8.0.0" - find-up: "npm:^5.0.0" - glob-parent: "npm:^6.0.2" - ignore: "npm:^5.2.0" - imurmurhash: "npm:^0.1.4" - is-glob: "npm:^4.0.0" - json-stable-stringify-without-jsonify: "npm:^1.0.1" - lodash.merge: "npm:^4.6.2" - minimatch: "npm:^3.1.2" - natural-compare: "npm:^1.4.0" - optionator: "npm:^0.9.3" - peerDependencies: - jiti: "*" - peerDependenciesMeta: - jiti: - optional: true - bin: - eslint: bin/eslint.js - checksum: 10c0/5a5867078e03ea56a1b6d1ee1548659abc38a6d5136c7ef94e21c5dbeb28e3ed50b15d2e0da25fce85600f6cf7ea7715eae650c41e8ae826c34490e9ec73d5d6 + string.prototype.matchall: "npm:^4.0.12" + string.prototype.repeat: "npm:^1.0.0" + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + checksum: 10c0/c850bfd556291d4d9234f5ca38db1436924a1013627c8ab1853f77cac73ec19b020e861e6c7b783436a48b6ffcdfba4547598235a37ad4611b6739f65fd8ad57 + languageName: node + linkType: hard + +"eslint-plugin-security@npm:1.4.0": + version: 1.4.0 + resolution: "eslint-plugin-security@npm:1.4.0" + dependencies: + safe-regex: "npm:^1.1.0" + checksum: 10c0/6f0865bbfc33f78fe9b897b8fcb3ca66fa1b6ac36afa780ebf3534cd3f50b65a82eb6cc67c08027a8e6b86c11225efdc4d8b7184d324d6b93b9125328e8b01a1 + languageName: node + linkType: hard + +"eslint-scope@npm:^8.4.0": + version: 8.4.0 + resolution: "eslint-scope@npm:8.4.0" + dependencies: + esrecurse: "npm:^4.3.0" + estraverse: "npm:^5.2.0" + checksum: 10c0/407f6c600204d0f3705bd557f81bd0189e69cd7996f408f8971ab5779c0af733d1af2f1412066b40ee1588b085874fc37a2333986c6521669cdbdd36ca5058e0 + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^3.4.3": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 10c0/92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820 + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^4.2.1": + version: 4.2.1 + resolution: "eslint-visitor-keys@npm:4.2.1" + checksum: 10c0/fcd43999199d6740db26c58dbe0c2594623e31ca307e616ac05153c9272f12f1364f5a0b1917a8e962268fdecc6f3622c1c2908b4fcc2e047a106fe6de69dc43 languageName: node linkType: hard -"eslint@npm:^9.39.2": +"eslint@npm:^9.0.0, eslint@npm:^9.39.2": version: 9.39.2 resolution: "eslint@npm:9.39.2" dependencies: @@ -15837,13 +14533,6 @@ __metadata: languageName: node linkType: hard -"fresh@npm:0.5.2, fresh@npm:~0.5.2": - version: 0.5.2 - resolution: "fresh@npm:0.5.2" - checksum: 10c0/c6d27f3ed86cc5b601404822f31c900dd165ba63fff8152a3ef714e2012e7535027063bc67ded4cb5b3a49fa596495d46cacd9f47d6328459cf570f08b7d9e5a - languageName: node - linkType: hard - "fresh@npm:^2.0.0": version: 2.0.0 resolution: "fresh@npm:2.0.0" @@ -15851,6 +14540,13 @@ __metadata: languageName: node linkType: hard +"fresh@npm:~0.5.2": + version: 0.5.2 + resolution: "fresh@npm:0.5.2" + checksum: 10c0/c6d27f3ed86cc5b601404822f31c900dd165ba63fff8152a3ef714e2012e7535027063bc67ded4cb5b3a49fa596495d46cacd9f47d6328459cf570f08b7d9e5a + languageName: node + linkType: hard + "fs-extra@npm:^11.1.1, fs-extra@npm:^11.2.0": version: 11.2.0 resolution: "fs-extra@npm:11.2.0" @@ -16429,7 +15125,7 @@ __metadata: languageName: node linkType: hard -"hasown@npm:^2.0.0, hasown@npm:^2.0.2": +"hasown@npm:^2.0.2": version: 2.0.2 resolution: "hasown@npm:2.0.2" dependencies: @@ -16622,19 +15318,6 @@ __metadata: languageName: node linkType: hard -"http-errors@npm:2.0.0": - version: 2.0.0 - resolution: "http-errors@npm:2.0.0" - dependencies: - depd: "npm:2.0.0" - inherits: "npm:2.0.4" - setprototypeof: "npm:1.2.0" - statuses: "npm:2.0.1" - toidentifier: "npm:1.0.1" - checksum: 10c0/fc6f2715fe188d091274b5ffc8b3657bd85c63e969daa68ccb77afb05b071a4b62841acb7a21e417b5539014dff2ebf9550f0b14a9ff126f2734a7c1387f8e19 - languageName: node - linkType: hard - "http-errors@npm:^2.0.0, http-errors@npm:^2.0.1, http-errors@npm:~2.0.1": version: 2.0.1 resolution: "http-errors@npm:2.0.1" @@ -16881,7 +15564,7 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3, inherits@npm:~2.0.4": +"inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.1, inherits@npm:~2.0.3, inherits@npm:~2.0.4": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 @@ -17299,7 +15982,7 @@ __metadata: languageName: node linkType: hard -"is-string@npm:^1.0.7, is-string@npm:^1.1.1": +"is-string@npm:^1.1.1": version: 1.1.1 resolution: "is-string@npm:1.1.1" dependencies: @@ -18229,16 +16912,7 @@ __metadata: languageName: node linkType: hard -"jsesc@npm:^3.0.2, jsesc@npm:~3.0.2": - version: 3.0.2 - resolution: "jsesc@npm:3.0.2" - bin: - jsesc: bin/jsesc - checksum: 10c0/ef22148f9e793180b14d8a145ee6f9f60f301abf443288117b4b6c53d0ecd58354898dc506ccbb553a5f7827965cd38bc5fb726575aae93c5e8915e2de8290e1 - languageName: node - linkType: hard - -"jsesc@npm:~3.1.0": +"jsesc@npm:^3.0.2, jsesc@npm:~3.1.0": version: 3.1.0 resolution: "jsesc@npm:3.1.0" bin: @@ -19096,6 +17770,18 @@ __metadata: languageName: node linkType: hard +"metro-babel-transformer@npm:0.83.1": + version: 0.83.1 + resolution: "metro-babel-transformer@npm:0.83.1" + dependencies: + "@babel/core": "npm:^7.25.2" + flow-enums-runtime: "npm:^0.0.6" + hermes-parser: "npm:0.29.1" + nullthrows: "npm:^1.1.1" + checksum: 10c0/7e89744812a58fd6b9fa45141f0b34a9c23b895e2d92942415475493de668e4c17d1ec55c9d5be6b0d8c53651c64c2b73bb0ea2a08fdd1fb703b0c7c467de4a2 + languageName: node + linkType: hard + "metro-babel-transformer@npm:0.83.3": version: 0.83.3 resolution: "metro-babel-transformer@npm:0.83.3" @@ -19117,6 +17803,15 @@ __metadata: languageName: node linkType: hard +"metro-cache-key@npm:0.83.1": + version: 0.83.1 + resolution: "metro-cache-key@npm:0.83.1" + dependencies: + flow-enums-runtime: "npm:^0.0.6" + checksum: 10c0/16d3541a413a26723880512267f1986052fafa3d71da86edcdf24830236e657e29739153dcb5228e62e2817e2d73129a74eb65dde09d1e1763206a521e3d6b5c + languageName: node + linkType: hard + "metro-cache-key@npm:0.83.3": version: 0.83.3 resolution: "metro-cache-key@npm:0.83.3" @@ -19137,6 +17832,18 @@ __metadata: languageName: node linkType: hard +"metro-cache@npm:0.83.1": + version: 0.83.1 + resolution: "metro-cache@npm:0.83.1" + dependencies: + exponential-backoff: "npm:^3.1.1" + flow-enums-runtime: "npm:^0.0.6" + https-proxy-agent: "npm:^7.0.5" + metro-core: "npm:0.83.1" + checksum: 10c0/ddeac25554aec4c19fc7c6fecff8c79af486cc41962ee3e58218a84dafd6d9b1664572f7179bc69a967a01696008bfb10300d4b5e31b6ae3220b69b3b0ef9f11 + languageName: node + linkType: hard + "metro-cache@npm:0.83.3": version: 0.83.3 resolution: "metro-cache@npm:0.83.3" @@ -19165,6 +17872,22 @@ __metadata: languageName: node linkType: hard +"metro-config@npm:0.83.1": + version: 0.83.1 + resolution: "metro-config@npm:0.83.1" + dependencies: + connect: "npm:^3.6.5" + cosmiconfig: "npm:^5.0.5" + flow-enums-runtime: "npm:^0.0.6" + jest-validate: "npm:^29.7.0" + metro: "npm:0.83.1" + metro-cache: "npm:0.83.1" + metro-core: "npm:0.83.1" + metro-runtime: "npm:0.83.1" + checksum: 10c0/8c5ffe2cb92bf96209b8ee0727c13980594601230a06ec78a56ffca5a9b1a4faa8f59a16db95a0bf2c9c56f35bcf918f22da25aa2192528f4700e7247733326d + languageName: node + linkType: hard + "metro-config@npm:0.83.3, metro-config@npm:^0.83.1": version: 0.83.3 resolution: "metro-config@npm:0.83.3" @@ -19192,6 +17915,17 @@ __metadata: languageName: node linkType: hard +"metro-core@npm:0.83.1": + version: 0.83.1 + resolution: "metro-core@npm:0.83.1" + dependencies: + flow-enums-runtime: "npm:^0.0.6" + lodash.throttle: "npm:^4.1.1" + metro-resolver: "npm:0.83.1" + checksum: 10c0/c04b7fa05886d8e971e59446d380b21ee7031adc013740fe1ad41fef968235ab78eb5b592fc6e890dbc20192b4bbc83aa0ac93af717855a74b7629af46611291 + languageName: node + linkType: hard + "metro-core@npm:0.83.3, metro-core@npm:^0.83.1": version: 0.83.3 resolution: "metro-core@npm:0.83.3" @@ -19226,6 +17960,23 @@ __metadata: languageName: node linkType: hard +"metro-file-map@npm:0.83.1": + version: 0.83.1 + resolution: "metro-file-map@npm:0.83.1" + dependencies: + debug: "npm:^4.4.0" + fb-watchman: "npm:^2.0.0" + flow-enums-runtime: "npm:^0.0.6" + graceful-fs: "npm:^4.2.4" + invariant: "npm:^2.2.4" + jest-worker: "npm:^29.7.0" + micromatch: "npm:^4.0.4" + nullthrows: "npm:^1.1.1" + walker: "npm:^1.0.7" + checksum: 10c0/970496de8befb9fdcdaa5742f9b895510a2a4ce463a7120d3335cdd49e97462b2d71b66a50477af046fe728ba9366b2a921ce4245b20d704a2ea85639d40ba9d + languageName: node + linkType: hard + "metro-file-map@npm:0.83.3": version: 0.83.3 resolution: "metro-file-map@npm:0.83.3" @@ -19253,6 +18004,16 @@ __metadata: languageName: node linkType: hard +"metro-minify-terser@npm:0.83.1": + version: 0.83.1 + resolution: "metro-minify-terser@npm:0.83.1" + dependencies: + flow-enums-runtime: "npm:^0.0.6" + terser: "npm:^5.15.0" + checksum: 10c0/43196d7084a4664b6f49a09dfb96f4e54b3aec94191891266c664f66f07be76e8b6f616fd2e0205af3b01dc82a214e4d5f865185fd9534703cd90fb80c065c11 + languageName: node + linkType: hard + "metro-minify-terser@npm:0.83.3": version: 0.83.3 resolution: "metro-minify-terser@npm:0.83.3" @@ -19272,6 +18033,15 @@ __metadata: languageName: node linkType: hard +"metro-resolver@npm:0.83.1": + version: 0.83.1 + resolution: "metro-resolver@npm:0.83.1" + dependencies: + flow-enums-runtime: "npm:^0.0.6" + checksum: 10c0/33d711834f962d5c1c24c41826604f69628da019e816665619dead52f896a1e41afb7eb78ac7a82a3811e9be69def5909e7fee377dd68992faa4b4f71d73b1be + languageName: node + linkType: hard + "metro-resolver@npm:0.83.3": version: 0.83.3 resolution: "metro-resolver@npm:0.83.3" @@ -19291,6 +18061,16 @@ __metadata: languageName: node linkType: hard +"metro-runtime@npm:0.83.1": + version: 0.83.1 + resolution: "metro-runtime@npm:0.83.1" + dependencies: + "@babel/runtime": "npm:^7.25.0" + flow-enums-runtime: "npm:^0.0.6" + checksum: 10c0/f9d83d2be8c0ee4a9fded075a8154249e94b156fd2968d69b6cf7bfb73ff4a6181af5f786485cc1348bb57b963f2b35f6599d4d186c98de6ff3247f3eac47d74 + languageName: node + linkType: hard + "metro-runtime@npm:0.83.3, metro-runtime@npm:^0.83.1": version: 0.83.3 resolution: "metro-runtime@npm:0.83.3" @@ -19336,6 +18116,24 @@ __metadata: languageName: node linkType: hard +"metro-source-map@npm:0.83.1": + version: 0.83.1 + resolution: "metro-source-map@npm:0.83.1" + dependencies: + "@babel/traverse": "npm:^7.25.3" + "@babel/traverse--for-generate-function-map": "npm:@babel/traverse@^7.25.3" + "@babel/types": "npm:^7.25.2" + flow-enums-runtime: "npm:^0.0.6" + invariant: "npm:^2.2.4" + metro-symbolicate: "npm:0.83.1" + nullthrows: "npm:^1.1.1" + ob1: "npm:0.83.1" + source-map: "npm:^0.5.6" + vlq: "npm:^1.0.0" + checksum: 10c0/32d4e367ee029c94559883de70fd6d0a3b4bfa26ea1af26012cf3545bf77d68c12deb314b8717ef9678884f7c56693e63c944e636eff5e37dc66018dbc764549 + languageName: node + linkType: hard + "metro-source-map@npm:0.83.3, metro-source-map@npm:^0.83.1": version: 0.83.3 resolution: "metro-source-map@npm:0.83.3" @@ -19387,6 +18185,22 @@ __metadata: languageName: node linkType: hard +"metro-symbolicate@npm:0.83.1": + version: 0.83.1 + resolution: "metro-symbolicate@npm:0.83.1" + dependencies: + flow-enums-runtime: "npm:^0.0.6" + invariant: "npm:^2.2.4" + metro-source-map: "npm:0.83.1" + nullthrows: "npm:^1.1.1" + source-map: "npm:^0.5.6" + vlq: "npm:^1.0.0" + bin: + metro-symbolicate: src/index.js + checksum: 10c0/6993b48ac6d68a3e7d9c7136504b56c6e7f1def20e3d841d2c01773843807f7bdb0f45e0fbf25d0fcb7c7400cb0273de32fb88ecafa79c7b3cfcac5b3fb254f6 + languageName: node + linkType: hard + "metro-symbolicate@npm:0.83.3": version: 0.83.3 resolution: "metro-symbolicate@npm:0.83.3" @@ -19417,6 +18231,20 @@ __metadata: languageName: node linkType: hard +"metro-transform-plugins@npm:0.83.1": + version: 0.83.1 + resolution: "metro-transform-plugins@npm:0.83.1" + dependencies: + "@babel/core": "npm:^7.25.2" + "@babel/generator": "npm:^7.25.0" + "@babel/template": "npm:^7.25.0" + "@babel/traverse": "npm:^7.25.3" + flow-enums-runtime: "npm:^0.0.6" + nullthrows: "npm:^1.1.1" + checksum: 10c0/06efcd0a0fd312fecead9679e74c02de27309948bb119404c333c5f22c6ff7c2b081e11b412d65e070ed712059eca6904fe5bbf32c98f1298300f6e1da4fdd5b + languageName: node + linkType: hard + "metro-transform-plugins@npm:0.83.3": version: 0.83.3 resolution: "metro-transform-plugins@npm:0.83.3" @@ -19452,6 +18280,27 @@ __metadata: languageName: node linkType: hard +"metro-transform-worker@npm:0.83.1": + version: 0.83.1 + resolution: "metro-transform-worker@npm:0.83.1" + dependencies: + "@babel/core": "npm:^7.25.2" + "@babel/generator": "npm:^7.25.0" + "@babel/parser": "npm:^7.25.3" + "@babel/types": "npm:^7.25.2" + flow-enums-runtime: "npm:^0.0.6" + metro: "npm:0.83.1" + metro-babel-transformer: "npm:0.83.1" + metro-cache: "npm:0.83.1" + metro-cache-key: "npm:0.83.1" + metro-minify-terser: "npm:0.83.1" + metro-source-map: "npm:0.83.1" + metro-transform-plugins: "npm:0.83.1" + nullthrows: "npm:^1.1.1" + checksum: 10c0/b2bcca2664aef4d8dc84ca2ffcf495cf77e4a0d94af1baf41d95226b30440263e75653b02fedff49db329918372a14804e20aed473cf7c7a4104cacf0fa907cd + languageName: node + linkType: hard + "metro-transform-worker@npm:0.83.3": version: 0.83.3 resolution: "metro-transform-worker@npm:0.83.3" @@ -19525,6 +18374,56 @@ __metadata: languageName: node linkType: hard +"metro@npm:0.83.1": + version: 0.83.1 + resolution: "metro@npm:0.83.1" + dependencies: + "@babel/code-frame": "npm:^7.24.7" + "@babel/core": "npm:^7.25.2" + "@babel/generator": "npm:^7.25.0" + "@babel/parser": "npm:^7.25.3" + "@babel/template": "npm:^7.25.0" + "@babel/traverse": "npm:^7.25.3" + "@babel/types": "npm:^7.25.2" + accepts: "npm:^1.3.7" + chalk: "npm:^4.0.0" + ci-info: "npm:^2.0.0" + connect: "npm:^3.6.5" + debug: "npm:^4.4.0" + error-stack-parser: "npm:^2.0.6" + flow-enums-runtime: "npm:^0.0.6" + graceful-fs: "npm:^4.2.4" + hermes-parser: "npm:0.29.1" + image-size: "npm:^1.0.2" + invariant: "npm:^2.2.4" + jest-worker: "npm:^29.7.0" + jsc-safe-url: "npm:^0.2.2" + lodash.throttle: "npm:^4.1.1" + metro-babel-transformer: "npm:0.83.1" + metro-cache: "npm:0.83.1" + metro-cache-key: "npm:0.83.1" + metro-config: "npm:0.83.1" + metro-core: "npm:0.83.1" + metro-file-map: "npm:0.83.1" + metro-resolver: "npm:0.83.1" + metro-runtime: "npm:0.83.1" + metro-source-map: "npm:0.83.1" + metro-symbolicate: "npm:0.83.1" + metro-transform-plugins: "npm:0.83.1" + metro-transform-worker: "npm:0.83.1" + mime-types: "npm:^2.1.27" + nullthrows: "npm:^1.1.1" + serialize-error: "npm:^2.1.0" + source-map: "npm:^0.5.6" + throat: "npm:^5.0.0" + ws: "npm:^7.5.10" + yargs: "npm:^17.6.2" + bin: + metro: src/cli.js + checksum: 10c0/63681a43f7e6d8f1998b99e94bc41998726e3f5f74ebdfe37e127a38c2cc9b796c1c29407d64660d6f7819a7cfa9cb9881c0620678aa8c068c45e69d86aa3b2c + languageName: node + linkType: hard + "metro@npm:0.83.3, metro@npm:^0.83.1": version: 0.83.3 resolution: "metro@npm:0.83.3" @@ -20275,6 +19174,15 @@ __metadata: languageName: node linkType: hard +"ob1@npm:0.83.1": + version: 0.83.1 + resolution: "ob1@npm:0.83.1" + dependencies: + flow-enums-runtime: "npm:^0.0.6" + checksum: 10c0/95b13a29239741b2e177459e25404b26ae096f11ac75711f530eda00503492707930354cb78a3d8ffbc2d6d5c3e55165955b4cb50ad08dfe0ae12f138b37a75a + languageName: node + linkType: hard + "ob1@npm:0.83.3": version: 0.83.3 resolution: "ob1@npm:0.83.3" @@ -20373,7 +19281,7 @@ __metadata: languageName: node linkType: hard -"on-finished@npm:2.4.1, on-finished@npm:^2.4.1, on-finished@npm:~2.4.1": +"on-finished@npm:^2.4.1, on-finished@npm:~2.4.1": version: 2.4.1 resolution: "on-finished@npm:2.4.1" dependencies: @@ -20520,30 +19428,30 @@ __metadata: languageName: node linkType: hard -"oxc-resolver@npm:^11.15.0": - version: 11.16.3 - resolution: "oxc-resolver@npm:11.16.3" - dependencies: - "@oxc-resolver/binding-android-arm-eabi": "npm:11.16.3" - "@oxc-resolver/binding-android-arm64": "npm:11.16.3" - "@oxc-resolver/binding-darwin-arm64": "npm:11.16.3" - "@oxc-resolver/binding-darwin-x64": "npm:11.16.3" - "@oxc-resolver/binding-freebsd-x64": "npm:11.16.3" - "@oxc-resolver/binding-linux-arm-gnueabihf": "npm:11.16.3" - "@oxc-resolver/binding-linux-arm-musleabihf": "npm:11.16.3" - "@oxc-resolver/binding-linux-arm64-gnu": "npm:11.16.3" - "@oxc-resolver/binding-linux-arm64-musl": "npm:11.16.3" - "@oxc-resolver/binding-linux-ppc64-gnu": "npm:11.16.3" - "@oxc-resolver/binding-linux-riscv64-gnu": "npm:11.16.3" - "@oxc-resolver/binding-linux-riscv64-musl": "npm:11.16.3" - "@oxc-resolver/binding-linux-s390x-gnu": "npm:11.16.3" - "@oxc-resolver/binding-linux-x64-gnu": "npm:11.16.3" - "@oxc-resolver/binding-linux-x64-musl": "npm:11.16.3" - "@oxc-resolver/binding-openharmony-arm64": "npm:11.16.3" - "@oxc-resolver/binding-wasm32-wasi": "npm:11.16.3" - "@oxc-resolver/binding-win32-arm64-msvc": "npm:11.16.3" - "@oxc-resolver/binding-win32-ia32-msvc": "npm:11.16.3" - "@oxc-resolver/binding-win32-x64-msvc": "npm:11.16.3" +"oxc-resolver@npm:^11.15.0, oxc-resolver@npm:^11.17.0": + version: 11.17.0 + resolution: "oxc-resolver@npm:11.17.0" + dependencies: + "@oxc-resolver/binding-android-arm-eabi": "npm:11.17.0" + "@oxc-resolver/binding-android-arm64": "npm:11.17.0" + "@oxc-resolver/binding-darwin-arm64": "npm:11.17.0" + "@oxc-resolver/binding-darwin-x64": "npm:11.17.0" + "@oxc-resolver/binding-freebsd-x64": "npm:11.17.0" + "@oxc-resolver/binding-linux-arm-gnueabihf": "npm:11.17.0" + "@oxc-resolver/binding-linux-arm-musleabihf": "npm:11.17.0" + "@oxc-resolver/binding-linux-arm64-gnu": "npm:11.17.0" + "@oxc-resolver/binding-linux-arm64-musl": "npm:11.17.0" + "@oxc-resolver/binding-linux-ppc64-gnu": "npm:11.17.0" + "@oxc-resolver/binding-linux-riscv64-gnu": "npm:11.17.0" + "@oxc-resolver/binding-linux-riscv64-musl": "npm:11.17.0" + "@oxc-resolver/binding-linux-s390x-gnu": "npm:11.17.0" + "@oxc-resolver/binding-linux-x64-gnu": "npm:11.17.0" + "@oxc-resolver/binding-linux-x64-musl": "npm:11.17.0" + "@oxc-resolver/binding-openharmony-arm64": "npm:11.17.0" + "@oxc-resolver/binding-wasm32-wasi": "npm:11.17.0" + "@oxc-resolver/binding-win32-arm64-msvc": "npm:11.17.0" + "@oxc-resolver/binding-win32-ia32-msvc": "npm:11.17.0" + "@oxc-resolver/binding-win32-x64-msvc": "npm:11.17.0" dependenciesMeta: "@oxc-resolver/binding-android-arm-eabi": optional: true @@ -20585,7 +19493,7 @@ __metadata: optional: true "@oxc-resolver/binding-win32-x64-msvc": optional: true - checksum: 10c0/b64f306dc38d8fd973af077dcaf836b6dc9e8e5b9dbec22819fda5b7f3a2e602ce0159206e59c4a74a7206b5711af77cedef88d8489e6710291e971f63f063db + checksum: 10c0/22c7a183dcc89c752dce5c4bf4b9fbd5e63f72b79286831e6b386cf30e9de3c3f5f5cc012a4441f7e584b61574c63f980530bf43b28718d5f347c505978ccf90 languageName: node linkType: hard @@ -22108,15 +21016,6 @@ __metadata: languageName: node linkType: hard -"regenerate-unicode-properties@npm:^10.2.0": - version: 10.2.0 - resolution: "regenerate-unicode-properties@npm:10.2.0" - dependencies: - regenerate: "npm:^1.4.2" - checksum: 10c0/5510785eeaf56bbfdf4e663d6753f125c08d2a372d4107bc1b756b7bf142e2ed80c2733a8b54e68fb309ba37690e66a0362699b0e21d5c1f0255dea1b00e6460 - languageName: node - linkType: hard - "regenerate-unicode-properties@npm:^10.2.2": version: 10.2.2 resolution: "regenerate-unicode-properties@npm:10.2.2" @@ -22154,20 +21053,6 @@ __metadata: languageName: node linkType: hard -"regexpu-core@npm:^6.2.0": - version: 6.2.0 - resolution: "regexpu-core@npm:6.2.0" - dependencies: - regenerate: "npm:^1.4.2" - regenerate-unicode-properties: "npm:^10.2.0" - regjsgen: "npm:^0.8.0" - regjsparser: "npm:^0.12.0" - unicode-match-property-ecmascript: "npm:^2.0.0" - unicode-match-property-value-ecmascript: "npm:^2.1.0" - checksum: 10c0/bbcb83a854bf96ce4005ee4e4618b71c889cda72674ce6092432f0039b47890c2d0dfeb9057d08d440999d9ea03879ebbb7f26ca005ccf94390e55c348859b98 - languageName: node - linkType: hard - "regexpu-core@npm:^6.3.1": version: 6.4.0 resolution: "regexpu-core@npm:6.4.0" @@ -22189,17 +21074,6 @@ __metadata: languageName: node linkType: hard -"regjsparser@npm:^0.12.0": - version: 0.12.0 - resolution: "regjsparser@npm:0.12.0" - dependencies: - jsesc: "npm:~3.0.2" - bin: - regjsparser: bin/parser - checksum: 10c0/99d3e4e10c8c7732eb7aa843b8da2fd8b647fe144d3711b480e4647dc3bff4b1e96691ccf17f3ace24aa866a50b064236177cb25e6e4fbbb18285d99edaed83b - languageName: node - linkType: hard - "regjsparser@npm:^0.13.0": version: 0.13.0 resolution: "regjsparser@npm:0.13.0" @@ -22304,7 +21178,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.6, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.10, resolve@npm:^1.22.3, resolve@npm:^1.22.4": +"resolve@npm:^1.1.6, resolve@npm:^1.10.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.10, resolve@npm:^1.22.3, resolve@npm:^1.22.4": version: 1.22.10 resolution: "resolve@npm:1.22.10" dependencies: @@ -22330,7 +21204,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A^1.1.6#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.10#optional!builtin, resolve@patch:resolve@npm%3A^1.22.3#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin": +"resolve@patch:resolve@npm%3A^1.1.6#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.10#optional!builtin, resolve@patch:resolve@npm%3A^1.22.3#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin": version: 1.22.10 resolution: "resolve@patch:resolve@npm%3A1.22.10#optional!builtin::version=1.22.10&hash=c3c19d" dependencies: @@ -22653,27 +21527,6 @@ __metadata: languageName: node linkType: hard -"send@npm:0.19.0": - version: 0.19.0 - resolution: "send@npm:0.19.0" - dependencies: - debug: "npm:2.6.9" - depd: "npm:2.0.0" - destroy: "npm:1.2.0" - encodeurl: "npm:~1.0.2" - escape-html: "npm:~1.0.3" - etag: "npm:~1.8.1" - fresh: "npm:0.5.2" - http-errors: "npm:2.0.0" - mime: "npm:1.6.0" - ms: "npm:2.1.3" - on-finished: "npm:2.4.1" - range-parser: "npm:~1.2.1" - statuses: "npm:2.0.1" - checksum: 10c0/ea3f8a67a8f0be3d6bf9080f0baed6d2c51d11d4f7b4470de96a5029c598a7011c497511ccc28968b70ef05508675cebff27da9151dd2ceadd60be4e6cf845e3 - languageName: node - linkType: hard - "send@npm:^1.1.0, send@npm:^1.2.0": version: 1.2.1 resolution: "send@npm:1.2.1" @@ -22743,19 +21596,7 @@ __metadata: languageName: node linkType: hard -"serve-static@npm:^1.13.1": - version: 1.16.2 - resolution: "serve-static@npm:1.16.2" - dependencies: - encodeurl: "npm:~2.0.0" - escape-html: "npm:~1.0.3" - parseurl: "npm:~1.3.3" - send: "npm:0.19.0" - checksum: 10c0/528fff6f5e12d0c5a391229ad893910709bc51b5705962b09404a1d813857578149b8815f35d3ee5752f44cd378d0f31669d4b1d7e2d11f41e08283d5134bd1f - languageName: node - linkType: hard - -"serve-static@npm:^1.16.2": +"serve-static@npm:^1.13.1, serve-static@npm:^1.16.2": version: 1.16.3 resolution: "serve-static@npm:1.16.3" dependencies: @@ -22830,7 +21671,7 @@ __metadata: languageName: node linkType: hard -"setprototypeof@npm:1.2.0, setprototypeof@npm:~1.2.0": +"setprototypeof@npm:~1.2.0": version: 1.2.0 resolution: "setprototypeof@npm:1.2.0" checksum: 10c0/68733173026766fa0d9ecaeb07f0483f4c2dc70ca376b3b7c40b7cda909f94b0918f6c5ad5ce27a9160bdfb475efaa9d5e705a11d8eaae18f9835d20976028bc @@ -23341,13 +22182,6 @@ __metadata: languageName: node linkType: hard -"statuses@npm:2.0.1": - version: 2.0.1 - resolution: "statuses@npm:2.0.1" - checksum: 10c0/34378b207a1620a24804ce8b5d230fea0c279f00b18a7209646d5d47e419d1cc23e7cbf33a25a1e51ac38973dc2ac2e1e9c647a8e481ef365f77668d72becfd0 - languageName: node - linkType: hard - "statuses@npm:^2.0.1, statuses@npm:^2.0.2, statuses@npm:~2.0.2": version: 2.0.2 resolution: "statuses@npm:2.0.2" @@ -23935,7 +22769,7 @@ __metadata: languageName: node linkType: hard -"toidentifier@npm:1.0.1, toidentifier@npm:~1.0.1": +"toidentifier@npm:~1.0.1": version: 1.0.1 resolution: "toidentifier@npm:1.0.1" checksum: 10c0/93937279934bd66cc3270016dd8d0afec14fb7c94a05c72dc57321f8bd1fa97e5bea6d1f7c89e728d077ca31ea125b78320a616a6c6cd0e6b9cb94cb864381c1 @@ -24324,13 +23158,6 @@ __metadata: languageName: node linkType: hard -"unicode-match-property-value-ecmascript@npm:^2.1.0": - version: 2.1.0 - resolution: "unicode-match-property-value-ecmascript@npm:2.1.0" - checksum: 10c0/f5b9499b9e0ffdc6027b744d528f17ec27dd7c15da03254ed06851feec47e0531f20d410910c8a49af4a6a190f4978413794c8d75ce112950b56d583b5d5c7f2 - languageName: node - linkType: hard - "unicode-match-property-value-ecmascript@npm:^2.2.1": version: 2.2.1 resolution: "unicode-match-property-value-ecmascript@npm:2.2.1" From eb71e27bfecf8fb74d1968db55721ea8d3e1db92 Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Fri, 30 Jan 2026 13:42:17 -0800 Subject: [PATCH 15/29] Change files --- ...native-tester-9dc540eb-6944-4a26-82fb-8102f484cd50.json | 7 +++++++ ...-tester-win32-5358d5ab-1a59-49a4-ba4b-5a42744be305.json | 7 +++++++ 2 files changed, 14 insertions(+) create mode 100644 change/@fluentui-react-native-tester-9dc540eb-6944-4a26-82fb-8102f484cd50.json create mode 100644 change/@fluentui-react-native-tester-win32-5358d5ab-1a59-49a4-ba4b-5a42744be305.json diff --git a/change/@fluentui-react-native-tester-9dc540eb-6944-4a26-82fb-8102f484cd50.json b/change/@fluentui-react-native-tester-9dc540eb-6944-4a26-82fb-8102f484cd50.json new file mode 100644 index 0000000000..12a026bdfa --- /dev/null +++ b/change/@fluentui-react-native-tester-9dc540eb-6944-4a26-82fb-8102f484cd50.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "fix bundling rn-win32 0.81 against furn", + "packageName": "@fluentui-react-native/tester", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-tester-win32-5358d5ab-1a59-49a4-ba4b-5a42744be305.json b/change/@fluentui-react-native-tester-win32-5358d5ab-1a59-49a4-ba4b-5a42744be305.json new file mode 100644 index 0000000000..e07a428e72 --- /dev/null +++ b/change/@fluentui-react-native-tester-win32-5358d5ab-1a59-49a4-ba4b-5a42744be305.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "fix bundling rn-win32 0.81 against furn", + "packageName": "@fluentui-react-native/tester-win32", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} From 3974ddcf9a6b7752043782ca203a2bc43de48577 Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Mon, 2 Feb 2026 10:06:53 -0800 Subject: [PATCH 16/29] fix overflow rendering --- .../components/Icon/src/FontIcon/FontIcon.tsx | 6 +++--- packages/components/Icon/src/SvgIcon/SvgIcon.tsx | 6 +++--- packages/components/Icon/src/legacy/Icon.tsx | 6 +++--- packages/components/Menu/src/Menu/Menu.tsx | 6 +++--- .../Menu/src/MenuCallout/MenuCallout.android.tsx | 6 +++--- .../Menu/src/MenuCallout/MenuCallout.tsx | 6 +++--- .../Notification/src/Notification.helper.tsx | 6 +++--- .../TabListAnimatedIndicator.tsx | 6 +++--- .../TabListAnimatedIndicator.win32.tsx | 6 +++--- .../Overflow/src/Overflow/Overflow.tsx | 6 +++--- .../Overflow/src/OverflowItem/OverflowItem.tsx | 6 +++--- .../__snapshots__/Overflow.test.tsx.snap | 15 ++++++--------- packages/experimental/Shadow/src/Shadow.tsx | 6 +++--- packages/experimental/Tooltip/src/Tooltip.tsx | 6 +++--- .../src/component-patterns/phasedComponent.ts | 9 ++------- .../src/component-patterns/render.ts | 5 ++--- packages/framework/use-slot/src/useSlot.test.tsx | 10 +++++----- 17 files changed, 54 insertions(+), 63 deletions(-) diff --git a/packages/components/Icon/src/FontIcon/FontIcon.tsx b/packages/components/Icon/src/FontIcon/FontIcon.tsx index 4e0a84023b..23e6d1b768 100644 --- a/packages/components/Icon/src/FontIcon/FontIcon.tsx +++ b/packages/components/Icon/src/FontIcon/FontIcon.tsx @@ -1,6 +1,6 @@ import { Text } from 'react-native'; -import { mergeProps, phasedComponent } from '@fluentui-react-native/framework-base'; +import { mergeProps, directComponent, phasedComponent } from '@fluentui-react-native/framework-base'; import type { FontIconProps } from './FontIcon.types'; import { fontIconName } from './FontIcon.types'; @@ -8,13 +8,13 @@ import { useFontIcon } from './useFontIcon'; export const FontIcon = phasedComponent((props: FontIconProps) => { const fontIconProps = useFontIcon(props); - return (final: FontIconProps) => { + return directComponent((final: FontIconProps) => { const newProps = mergeProps(fontIconProps, final); const { codepoint, ...rest } = newProps; const char = String.fromCharCode(codepoint); return {char}; - }; + }); }); FontIcon.displayName = fontIconName; diff --git a/packages/components/Icon/src/SvgIcon/SvgIcon.tsx b/packages/components/Icon/src/SvgIcon/SvgIcon.tsx index 10085c5743..603a77b7a2 100644 --- a/packages/components/Icon/src/SvgIcon/SvgIcon.tsx +++ b/packages/components/Icon/src/SvgIcon/SvgIcon.tsx @@ -1,6 +1,6 @@ import { Platform, View } from 'react-native'; -import { mergeProps, phasedComponent } from '@fluentui-react-native/framework-base'; +import { mergeProps, phasedComponent, directComponent } from '@fluentui-react-native/framework-base'; import { SvgUri } from 'react-native-svg'; import type { SvgIconProps } from './SvgIcon.types'; @@ -9,7 +9,7 @@ import { useSvgIcon } from './useSvgIcon'; export const SvgIcon = phasedComponent((props: SvgIconProps) => { const svgProps = useSvgIcon(props); - return (final: SvgIconProps) => { + return directComponent((final: SvgIconProps) => { const { style, height, width, src, uri, viewBox, color, ...rest } = mergeProps(svgProps, final); const svgIconsSupported = Platform.OS !== 'windows'; @@ -22,7 +22,7 @@ export const SvgIcon = phasedComponent((props: SvgIconProps) => { )} ) : null; - }; + }); }); SvgIcon.displayName = svgIconName; diff --git a/packages/components/Icon/src/legacy/Icon.tsx b/packages/components/Icon/src/legacy/Icon.tsx index 2979d53be6..a6e94dbe60 100644 --- a/packages/components/Icon/src/legacy/Icon.tsx +++ b/packages/components/Icon/src/legacy/Icon.tsx @@ -2,7 +2,7 @@ import { Image, Platform, View } from 'react-native'; import type { ImageStyle, TextStyle, ViewStyle } from 'react-native'; import { mergeStyles, useFluentTheme } from '@fluentui-react-native/framework'; -import { phasedComponent, mergeProps, getMemoCache, getTypedMemoCache } from '@fluentui-react-native/framework-base'; +import { phasedComponent, directComponent, mergeProps, getMemoCache, getTypedMemoCache } from '@fluentui-react-native/framework-base'; import { Text } from '@fluentui-react-native/text'; import type { SvgProps } from 'react-native-svg'; import { SvgUri } from 'react-native-svg'; @@ -95,7 +95,7 @@ function renderSvg(iconProps: IconProps) { export const Icon = phasedComponent((props: IconProps) => { const theme = useFluentTheme(); - return (rest: IconProps) => { + return directComponent((rest: IconProps) => { const color = props.color || theme.colors.buttonText; const accessible = props.accessible ?? true; @@ -115,7 +115,7 @@ export const Icon = phasedComponent((props: IconProps) => { } else { return null; } - }; + }); }); export default Icon; diff --git a/packages/components/Menu/src/Menu/Menu.tsx b/packages/components/Menu/src/Menu/Menu.tsx index 5b18424acf..26d5dac70e 100644 --- a/packages/components/Menu/src/Menu/Menu.tsx +++ b/packages/components/Menu/src/Menu/Menu.tsx @@ -1,6 +1,6 @@ import React from 'react'; -import { phasedComponent } from '@fluentui-react-native/framework-base'; +import { phasedComponent, directComponent } from '@fluentui-react-native/framework-base'; import type { MenuProps } from './Menu.types'; import { menuName } from './Menu.types'; @@ -12,7 +12,7 @@ export const Menu = phasedComponent((props: MenuProps) => { const state = useMenu(props); const contextValue = useMenuContextValue(state); - return (rest: MenuProps) => { + return directComponent((rest: MenuProps) => { const childrenArray = React.Children.toArray(rest.children) as React.ReactElement[]; if (__DEV__) { @@ -21,7 +21,7 @@ export const Menu = phasedComponent((props: MenuProps) => { } } return renderFinalMenu(childrenArray, contextValue, state); - }; + }); }); Menu.displayName = menuName; diff --git a/packages/components/Menu/src/MenuCallout/MenuCallout.android.tsx b/packages/components/Menu/src/MenuCallout/MenuCallout.android.tsx index 097b99b356..c2305a0673 100644 --- a/packages/components/Menu/src/MenuCallout/MenuCallout.android.tsx +++ b/packages/components/Menu/src/MenuCallout/MenuCallout.android.tsx @@ -1,6 +1,6 @@ import { Animated, Modal, TouchableWithoutFeedback, View, StyleSheet, ScrollView } from 'react-native'; -import { mergeProps, phasedComponent } from '@fluentui-react-native/framework-base'; +import { mergeProps, phasedComponent, directComponent } from '@fluentui-react-native/framework-base'; import type { MenuCalloutProps } from './MenuCallout.types'; import { menuCalloutName } from './MenuCallout.types'; @@ -11,7 +11,7 @@ const AnimatedScrollView = Animated.createAnimatedComponent(ScrollView); export const MenuCallout = phasedComponent((props: MenuCalloutProps) => { const context = useMenuContext(); - return (innerProps: MenuCalloutProps) => { + return directComponent((innerProps: MenuCalloutProps) => { const { children, ...rest } = mergeProps(props, innerProps); const mergedProps = mergeProps(props, rest); const tokens = props.tokens; @@ -51,7 +51,7 @@ export const MenuCallout = phasedComponent((props: MenuCalloutProps) => { ); - }; + }); }); MenuCallout.displayName = menuCalloutName; diff --git a/packages/components/Menu/src/MenuCallout/MenuCallout.tsx b/packages/components/Menu/src/MenuCallout/MenuCallout.tsx index 4877476139..08ef20a78a 100644 --- a/packages/components/Menu/src/MenuCallout/MenuCallout.tsx +++ b/packages/components/Menu/src/MenuCallout/MenuCallout.tsx @@ -1,16 +1,16 @@ import { Callout } from '@fluentui-react-native/callout'; -import { mergeProps, phasedComponent } from '@fluentui-react-native/framework-base'; +import { mergeProps, phasedComponent, directComponent } from '@fluentui-react-native/framework-base'; import type { MenuCalloutProps } from './MenuCallout.types'; import { menuCalloutName } from './MenuCallout.types'; export const MenuCallout = phasedComponent((props: MenuCalloutProps) => { - return (innerProps: MenuCalloutProps) => { + return directComponent((innerProps: MenuCalloutProps) => { const { children, ...rest } = innerProps; const mergedProps = mergeProps(props, rest); return {children}; - }; + }); }); MenuCallout.displayName = menuCalloutName; diff --git a/packages/components/Notification/src/Notification.helper.tsx b/packages/components/Notification/src/Notification.helper.tsx index 53470446b2..d7f0630bb0 100644 --- a/packages/components/Notification/src/Notification.helper.tsx +++ b/packages/components/Notification/src/Notification.helper.tsx @@ -2,7 +2,7 @@ import React from 'react'; import type { ButtonProps, ButtonTokens } from '@fluentui-react-native/button'; import { ButtonV1 as Button } from '@fluentui-react-native/button'; -import { mergeProps, phasedComponent } from '@fluentui-react-native/framework-base'; +import { mergeProps, phasedComponent, directComponent } from '@fluentui-react-native/framework-base'; import type { SvgIconProps } from '@fluentui-react-native/icon'; import { createIconProps } from '@fluentui-react-native/icon'; import { globalTokens } from '@fluentui-react-native/theme-tokens'; @@ -86,9 +86,9 @@ export const NotificationButton = phasedComponent((props: NotificationButtonProp [props.color, props.disabledColor, props.pressedColor], ); - return (final: NotificationButtonProps) => { + return directComponent((final: NotificationButtonProps) => { const { children, ...rest } = final; const mergedProps = mergeProps(props, rest); return {children}; - }; + }); }); diff --git a/packages/components/TabList/src/TabListAnimatedIndicator/TabListAnimatedIndicator.tsx b/packages/components/TabList/src/TabListAnimatedIndicator/TabListAnimatedIndicator.tsx index 69f1bdc461..4d2a7fb5ad 100644 --- a/packages/components/TabList/src/TabListAnimatedIndicator/TabListAnimatedIndicator.tsx +++ b/packages/components/TabList/src/TabListAnimatedIndicator/TabListAnimatedIndicator.tsx @@ -1,6 +1,6 @@ import { Animated } from 'react-native'; -import { phasedComponent } from '@fluentui-react-native/framework-base'; +import { phasedComponent, directComponent } from '@fluentui-react-native/framework-base'; import type { AnimatedIndicatorProps } from './TabListAnimatedIndicator.types'; import { tablistAnimatedIndicatorName } from './TabListAnimatedIndicator.types'; @@ -8,9 +8,9 @@ import { useAnimatedIndicatorStyles } from './useAnimatedIndicatorStyles'; export const TabListAnimatedIndicator = phasedComponent((props) => { const styles = useAnimatedIndicatorStyles(props); - return () => { + return directComponent(() => { return ; - }; + }); }); TabListAnimatedIndicator.displayName = tablistAnimatedIndicatorName; diff --git a/packages/components/TabList/src/TabListAnimatedIndicator/TabListAnimatedIndicator.win32.tsx b/packages/components/TabList/src/TabListAnimatedIndicator/TabListAnimatedIndicator.win32.tsx index 7826f7a6bb..9a81eb3cd6 100644 --- a/packages/components/TabList/src/TabListAnimatedIndicator/TabListAnimatedIndicator.win32.tsx +++ b/packages/components/TabList/src/TabListAnimatedIndicator/TabListAnimatedIndicator.win32.tsx @@ -1,7 +1,7 @@ import { View } from 'react-native'; import type { Animated, ViewProps, ViewStyle } from 'react-native'; -import { phasedComponent, memoize } from '@fluentui-react-native/framework-base'; +import { phasedComponent, memoize, directComponent } from '@fluentui-react-native/framework-base'; import type { AnimatedIndicatorProps } from './TabListAnimatedIndicator.types'; import { tablistAnimatedIndicatorName } from './TabListAnimatedIndicator.types'; @@ -18,10 +18,10 @@ function indicatorPropsWorker(animationClass: string, style: Animated.AnimatedPr */ export const TabListAnimatedIndicator = phasedComponent((props) => { const styles = useAnimatedIndicatorStyles(props); - return () => { + return directComponent(() => { const indicatorProps = getIndicatorProps('Ribbon_TabUnderline', styles); return ; - }; + }); }); TabListAnimatedIndicator.displayName = tablistAnimatedIndicatorName; diff --git a/packages/experimental/Overflow/src/Overflow/Overflow.tsx b/packages/experimental/Overflow/src/Overflow/Overflow.tsx index b1fa373dd6..aabd8231c4 100644 --- a/packages/experimental/Overflow/src/Overflow/Overflow.tsx +++ b/packages/experimental/Overflow/src/Overflow/Overflow.tsx @@ -1,6 +1,6 @@ import { View } from 'react-native'; -import { mergeProps, phasedComponent } from '@fluentui-react-native/framework-base'; +import { mergeProps, phasedComponent, directComponent } from '@fluentui-react-native/framework-base'; import type { OverflowProps } from './Overflow.types'; import { overflowName } from './Overflow.types'; @@ -9,7 +9,7 @@ import { OverflowContext } from '../OverflowContext'; export const Overflow = phasedComponent((initial: OverflowProps) => { const { props, state } = useOverflow(initial); - return (final: OverflowProps) => { + return directComponent((final: OverflowProps) => { const { children, ...rest } = final; const mergedProps = mergeProps(props, rest); return ( @@ -17,7 +17,7 @@ export const Overflow = phasedComponent((initial: OverflowProps) {children}
); - }; + }); }); Overflow.displayName = overflowName; diff --git a/packages/experimental/Overflow/src/OverflowItem/OverflowItem.tsx b/packages/experimental/Overflow/src/OverflowItem/OverflowItem.tsx index 9231a810e3..e0fb41c2ee 100644 --- a/packages/experimental/Overflow/src/OverflowItem/OverflowItem.tsx +++ b/packages/experimental/Overflow/src/OverflowItem/OverflowItem.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import type { StyleProp, ViewProps, ViewStyle } from 'react-native'; -import { mergeProps, phasedComponent, memoize, mergeStyles } from '@fluentui-react-native/framework-base'; +import { mergeProps, directComponent, phasedComponent, memoize, mergeStyles } from '@fluentui-react-native/framework-base'; import type { OverflowItemProps } from './OverflowItem.types'; import { overflowItemName } from './OverflowItem.types'; @@ -14,7 +14,7 @@ function overflowItemPropWorker(props: ViewProps, style: StyleProp): export const OverflowItem = phasedComponent((userProps: OverflowItemProps) => { const { props, state } = useOverflowItem(userProps); - return (finalProps: OverflowItemProps) => { + return directComponent((finalProps: OverflowItemProps) => { const { children, ...rest } = finalProps; if (state.layoutDone && !state.visible) { return null; @@ -41,7 +41,7 @@ export const OverflowItem = phasedComponent((userProps: Overf const clone = React.cloneElement(child, viewProps); return clone; - }; + }); }); OverflowItem.displayName = overflowItemName; diff --git a/packages/experimental/Overflow/src/__tests__/__snapshots__/Overflow.test.tsx.snap b/packages/experimental/Overflow/src/__tests__/__snapshots__/Overflow.test.tsx.snap index 90caaf8dc9..49c8f38ee5 100644 --- a/packages/experimental/Overflow/src/__tests__/__snapshots__/Overflow.test.tsx.snap +++ b/packages/experimental/Overflow/src/__tests__/__snapshots__/Overflow.test.tsx.snap @@ -11,15 +11,12 @@ exports[`Overflow component tests Overflow default 1`] = ` } onLayout={[Function]} style={ - [ - undefined, - { - "display": "flex", - "flexDirection": "row", - "opacity": 0, - "padding": undefined, - }, - ] + { + "display": "flex", + "flexDirection": "row", + "opacity": 0, + "padding": undefined, + } } > { - return (final: ShadowProps) => { + return directComponent((final: ShadowProps) => { const { children, ...rest } = final; if (!props.shadowToken) { return <>{children}; @@ -25,7 +25,7 @@ export const Shadow = phasedComponent((props: ShadowProps) => { const childWithInnerShadow = React.cloneElement(children, innerShadowViewProps); return {childWithInnerShadow}; - }; + }); }); const getStylePropsForShadowViews = memoize(getStylePropsForShadowViewsWorker); diff --git a/packages/experimental/Tooltip/src/Tooltip.tsx b/packages/experimental/Tooltip/src/Tooltip.tsx index d0355972a2..08b8180ed3 100644 --- a/packages/experimental/Tooltip/src/Tooltip.tsx +++ b/packages/experimental/Tooltip/src/Tooltip.tsx @@ -7,7 +7,7 @@ import * as React from 'react'; import { findNodeHandle } from 'react-native'; -import { mergeProps, phasedComponent } from '@fluentui-react-native/framework-base'; +import { mergeProps, phasedComponent, directComponent } from '@fluentui-react-native/framework-base'; import type { TooltipProps } from './Tooltip.types'; import { tooltipName } from './Tooltip.types'; @@ -31,14 +31,14 @@ export const Tooltip = phasedComponent((props: TooltipProps) => { } }, [target]); - const TooltipComponent = (innerProps: TooltipProps) => { + const TooltipComponent = directComponent((innerProps: TooltipProps) => { const { children, ...rest } = innerProps; return ( {children} ); - }; + }); return TooltipComponent; }); diff --git a/packages/framework-base/src/component-patterns/phasedComponent.ts b/packages/framework-base/src/component-patterns/phasedComponent.ts index b07f97e1ab..1fcb817ad1 100644 --- a/packages/framework-base/src/component-patterns/phasedComponent.ts +++ b/packages/framework-base/src/component-patterns/phasedComponent.ts @@ -1,6 +1,6 @@ import React from 'react'; -import { jsx, jsxs } from '../jsx-runtime'; import type { ComposableFunction, PhasedComponent, PhasedRender, FunctionComponent } from './render.types'; +import { renderForJsxRuntime } from './render'; export function getPhasedRender(component: React.ComponentType): PhasedRender | undefined { // only a function component can have a phased render @@ -31,12 +31,7 @@ export function phasedComponent(getInnerPhase: PhasedRender): Fu // pull out children from props const { children, ...outerProps } = props; const Inner = getInnerPhase(outerProps as TProps); - - if (Array.isArray(children) && children.length > 1) { - return jsxs(Inner, { children }); - } else { - return jsx(Inner, { children }); - } + return renderForJsxRuntime(Inner, { children }); }, { _phasedRender: getInnerPhase }, ); diff --git a/packages/framework-base/src/component-patterns/render.ts b/packages/framework-base/src/component-patterns/render.ts index e4a5012397..a5133d779e 100644 --- a/packages/framework-base/src/component-patterns/render.ts +++ b/packages/framework-base/src/component-patterns/render.ts @@ -38,14 +38,13 @@ export function renderForJsxRuntime( // auto-detect whether to use jsx or jsxs based on number of children, 0 or 1 = jsx, more than 1 = jsxs if (!jsxFn) { - const children = props.children; - if (Array.isArray(children) && children.length > 1) { + if (React.Children.count(props.children) > 1) { jsxFn = ReactJSX.jsxs; } else { jsxFn = ReactJSX.jsx; } } - // now call the appropriate jsx function to + // now call the appropriate jsx function to render the component return jsxFn(type, props, key); } diff --git a/packages/framework/use-slot/src/useSlot.test.tsx b/packages/framework/use-slot/src/useSlot.test.tsx index 8555e7b062..2a76b5c91b 100644 --- a/packages/framework/use-slot/src/useSlot.test.tsx +++ b/packages/framework/use-slot/src/useSlot.test.tsx @@ -6,7 +6,7 @@ import { Text, View } from 'react-native'; import { type FunctionComponent, mergeStyles } from '@fluentui-react-native/framework-base'; import * as renderer from 'react-test-renderer'; -import { phasedComponent } from '@fluentui-react-native/framework-base'; +import { phasedComponent, directComponent } from '@fluentui-react-native/framework-base'; import { useSlot } from './useSlot'; type PluggableTextProps = TextProps & { inner?: FunctionComponent }; @@ -23,11 +23,11 @@ const PluggableText = phasedComponent((props: PluggableTextProps) => { const Inner = useSlot(inner || Text, rest); // return a closure for finishing off render - return (extra: TextProps) => { + return directComponent((extra: TextProps) => { // split children from extra props const { children, ...rest } = extra; return {children}; - }; + }); }); PluggableText.displayName = 'PluggableText'; @@ -42,10 +42,10 @@ const useStyledStagedText = (props: PluggableTextProps, baseStyle: TextProps['st const InnerText = useSlot(PluggableText, mergedProps); // return a closure to complete the staged pattern - return (extra: PluggableTextProps) => { + return directComponent((extra: PluggableTextProps) => { const { children, ...rest } = extra; return {children}; - }; + }); }; const HeaderText = phasedComponent((props: PluggableTextProps) => { From 59f9761b2aab4e89bc1eb6f17600490bf3aad91a Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Mon, 2 Feb 2026 10:25:43 -0800 Subject: [PATCH 17/29] ensure old codepaths are consistent in behavior --- .../src/component-patterns/phasedComponent.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/framework-base/src/component-patterns/phasedComponent.ts b/packages/framework-base/src/component-patterns/phasedComponent.ts index 1fcb817ad1..8d285a187d 100644 --- a/packages/framework-base/src/component-patterns/phasedComponent.ts +++ b/packages/framework-base/src/component-patterns/phasedComponent.ts @@ -1,6 +1,7 @@ import React from 'react'; import type { ComposableFunction, PhasedComponent, PhasedRender, FunctionComponent } from './render.types'; import { renderForJsxRuntime } from './render'; +import type { LegacyDirectComponent } from './render.types'; export function getPhasedRender(component: React.ComponentType): PhasedRender | undefined { // only a function component can have a phased render @@ -13,7 +14,14 @@ export function getPhasedRender(component: React.ComponentType): const staged = (component as ComposableFunction)._staged; return (props: TProps) => { const { children, ...rest } = props as React.PropsWithChildren; - return staged(rest as TProps, ...React.Children.toArray(children)); + const inner = staged(rest as TProps, ...React.Children.toArray(children)); + // staged render functions were not consistently marking contents as composable, though they were treated + // as such in useHook. To maintain compatibility we mark the returned function as composable here. This was + // dangerous, but this shim is necessary for backward compatibility. The newer pattern is explicit about this. + if (typeof inner === 'function' && !(inner as LegacyDirectComponent)._canCompose) { + return Object.assign(inner, { _canCompose: true }); + } + return inner; }; } } From 98ebc33032c59251c1ab8f7c7f1cc685128d749e Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Mon, 2 Feb 2026 10:39:46 -0800 Subject: [PATCH 18/29] centralize .gitattributes --- .gitattributes | 3 ++- apps/fluent-tester/.gitattributes | 1 - apps/win32-81/.gitattributes | 1 - ...icrosoft.FluentUI.FluentTesterWin32.nuspec | 19 ------------------- apps/win32/.gitattributes | 1 - 5 files changed, 2 insertions(+), 23 deletions(-) delete mode 100644 apps/fluent-tester/.gitattributes delete mode 100644 apps/win32-81/.gitattributes delete mode 100644 apps/win32-81/nuget/Microsoft.FluentUI.FluentTesterWin32.nuspec delete mode 100644 apps/win32/.gitattributes diff --git a/.gitattributes b/.gitattributes index 3ae136e59e..a48ea2b55f 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,3 @@ # Set the default line ending behavior for text, in case people don't have core.autocrlf set. -* text=auto \ No newline at end of file +* text=auto +*.pbxproj -text \ No newline at end of file diff --git a/apps/fluent-tester/.gitattributes b/apps/fluent-tester/.gitattributes deleted file mode 100644 index d42ff18354..0000000000 --- a/apps/fluent-tester/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -*.pbxproj -text diff --git a/apps/win32-81/.gitattributes b/apps/win32-81/.gitattributes deleted file mode 100644 index d42ff18354..0000000000 --- a/apps/win32-81/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -*.pbxproj -text diff --git a/apps/win32-81/nuget/Microsoft.FluentUI.FluentTesterWin32.nuspec b/apps/win32-81/nuget/Microsoft.FluentUI.FluentTesterWin32.nuspec deleted file mode 100644 index 06a3329c46..0000000000 --- a/apps/win32-81/nuget/Microsoft.FluentUI.FluentTesterWin32.nuspec +++ /dev/null @@ -1,19 +0,0 @@ - - - - Microsoft.FluentUI.FluentTesterWin32.81 - 1.0.0 - FluentUI-React-Native Win32 RN 0.81 Bundle - Microsoft Office CXE - https://github.com/microsoft/fluentui-react-native.git - This package contains the React Native JS bundle of FluentUI-React-Native's Win32 Test App. - false - - - - - - - \ No newline at end of file diff --git a/apps/win32/.gitattributes b/apps/win32/.gitattributes deleted file mode 100644 index d42ff18354..0000000000 --- a/apps/win32/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -*.pbxproj -text From 9ae053ec3bc0088902a13de9e0148c875623512f Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Mon, 2 Feb 2026 11:24:50 -0800 Subject: [PATCH 19/29] update framework-base documentation and fix logic bug --- packages/framework-base/README.md | 19 ++++- .../src/component-patterns/README.md | 69 ++++++++++++++----- .../src/component-patterns/phasedComponent.ts | 10 ++- .../src/component-patterns/render.types.ts | 34 +++++---- packages/framework-base/src/index.ts | 13 +++- 5 files changed, 110 insertions(+), 35 deletions(-) diff --git a/packages/framework-base/README.md b/packages/framework-base/README.md index 6e3d33ed9e..38de7b66b7 100644 --- a/packages/framework-base/README.md +++ b/packages/framework-base/README.md @@ -16,4 +16,21 @@ The shared patterns for rendering components, as well as the JSX handlers have b ## Type Helpers -- TODO: There are a number of issues with the way types are handled in the larger fluentui-react-native project, helpers and core types will be added here to help solve inference issues, avoid hard typecasts, and help the project eventually move to typescript 5.x. +This package provides several TypeScript utility types: + +- `PropsOf` - Extract props from a React component type +- `FunctionComponent` - A function component type without the children handling complications of React.FC +- `DirectComponent` - A function component marked for direct rendering +- `PhasedComponent` - A component with two-phase rendering support +- `SlotFn` - Slot function type used in the composition framework +- `FinalRender` - The final rendering signature for phased components + +## JSX Runtime + +This package exports a custom JSX runtime at `@fluentui-react-native/framework-base/jsx-runtime`. Use it in your component files with: + +```tsx +/** @jsxImportSource @fluentui-react-native/framework-base */ +``` + +The custom runtime enables automatic element flattening for direct and phased components. diff --git a/packages/framework-base/src/component-patterns/README.md b/packages/framework-base/src/component-patterns/README.md index 18517b4ce8..426cb32dce 100644 --- a/packages/framework-base/src/component-patterns/README.md +++ b/packages/framework-base/src/component-patterns/README.md @@ -2,38 +2,75 @@ These are the base component patterns shared across the deprecated or v0 framework (found under packages/deprecated), and the newer framework (found under packages/framework). This also includes the custom JSX handlers required to render them properly. -There are two main patterns exposed here: direct rendering and staged rendering. +There are two main patterns exposed here: direct rendering and phased rendering. ## Direct Rendering -The direct rendering pattern allows a component to be called directly, rather than creating a new entry in the DOM. +The direct rendering pattern allows a component to be called directly, rather than creating a new entry in the render tree. -As an example, if you want to create a wrapper around a component called `MyText` that has `italicize` as one of its props, that always wants to set that value to true. You could define: +As an example, if you want to create a wrapper around a component called `MyText` that has `italicize` as one of its props, that always wants to set that value to true, you could define: ```ts const MyNewText: React.FunctionComponent = (props) => { - return ; -} + return ; +}; ``` -When this is rendered, there is an entry for `MyNewText` which contains a `MyText` (another entry), which might contains `Text` (for react-native usage). The direct rendering pattern is one where a component can denote that it is safe to be called directly as a function, instead operating as a prop transform that gets applied to the underlying component. +When this is rendered, there is an entry for `MyNewText` which contains a `MyText` (another entry), which might contain `Text` (for react-native usage). The direct rendering pattern is one where a component can denote that it is safe to be called directly as a function, instead operating as a prop transform that gets applied to the underlying component. -- For the above to be safe, `MyNewText` should NOT use hooks. In the case of any conditional rendering logic this will break the rule of hooks. +- For the above to be safe, `MyNewText` should NOT use hooks. In the case of any conditional rendering logic this will break the rules of hooks. There are two types of implementations in this folder: -- `DirectComponent` - a functional component that marks itself as direct with a `_callDirect: true` attached property. This will then be called as a normal function component, with children included as part of props. -- `LegacyDirectComponent` - the pattern currently used in this library that should be moved away from. In this case `_canCompose: true` is set as an attached property, and the function component will be called with children split from props. +- `DirectComponent` - a functional component that marks itself as direct with a `_callDirect: true` attached property. This will then be called as a normal function component, with children included as part of props. Use the `directComponent()` helper to create these. +- `LegacyDirectComponent` - the pattern currently used in legacy code that should be moved away from. In this case `_canCompose: true` is set as an attached property, and the function component will be called with children split from props. -The internal logic of the JSX rendering helpers will handle both patterns. In the case of the newer `DirectComponent` pattern, the component will still work, even without any jsx hooks, whereas the `LegacyDirectComponent` pattern will have a somewhat undefined behavior with regards to children. +The internal logic of the JSX rendering helpers (`renderForJsxRuntime` and `renderForClassicRuntime`) will handle both patterns. In the case of the newer `DirectComponent` pattern, the component will still work, even without any jsx hooks, whereas the `LegacyDirectComponent` pattern will have somewhat undefined behavior with regards to children. -## Staged Rendering +### Example: Using directComponent -The issue with the direct component pattern above, is that hooks are integral to writing functional components. The staged rendering pattern is designed to help with this. In this case a component is implemented in two stages, the prep stage where hooks are called, and the rendering stage where the tree is emitted. +```ts +import { directComponent } from '@fluentui-react-native/framework-base'; + +const MyNewText = directComponent((props) => { + return ; +}); +``` + +## Phased Rendering + +The issue with the direct component pattern above is that hooks are integral to writing functional components. The phased rendering pattern is designed to help with this. In this case a component is implemented in two phases: the prep phase where hooks are called, and the rendering phase where the tree is emitted. + +As above there is a newer and older version of the pattern: + +- `PhasedComponent` - the newer version of the pattern, where the returned component function expects children as part of props. Create these using `phasedComponent()`. The attached property is `_phasedRender`. +- `ComposableFunction` (deprecated) - the older "staged" version, where children are split out and JSX hooks are required to render correctly. Create these using the deprecated `stagedComponent()`. The attached property is `_staged`. + +Note that while the newer patterns work without any JSX hooks, the hooks will enable element flattening. + +### Example: Using phasedComponent + +```ts +import { phasedComponent } from '@fluentui-react-native/framework-base'; + +const MyComponent = phasedComponent((props) => { + // Phase 1: Hooks and logic + const theme = useTheme(); + const styles = useStyles(theme, props); + + // Phase 2: Return a component that renders + return (innerProps) => { + return {innerProps.children}; + }; +}); +``` + +## JSX Runtime -As above there is a newer and older version of the pattern. +This package provides a custom JSX runtime (`@fluentui-react-native/framework-base/jsx-runtime`) that automatically handles both direct and phased rendering patterns. When you use the `@jsxImportSource @fluentui-react-native/framework-base` pragma, the custom runtime will: -- `StagedComponent` - the newer version of the pattern, where the returned component function expects children as part of props. -- `StagedRender` - the older version, where children are split out and JSX hooks are required to render correctly. +1. Detect components marked with `_callDirect` or `_canCompose` and call them directly +2. Handle the different children patterns (props vs. rest args) +3. Fall back to standard React rendering for normal components -Note that while the newer patterns work without any JSX hooks, the hooks will enable the element flattening. +This enables element flattening without requiring explicit calls to helper functions. diff --git a/packages/framework-base/src/component-patterns/phasedComponent.ts b/packages/framework-base/src/component-patterns/phasedComponent.ts index 8d285a187d..6e4052a318 100644 --- a/packages/framework-base/src/component-patterns/phasedComponent.ts +++ b/packages/framework-base/src/component-patterns/phasedComponent.ts @@ -3,9 +3,17 @@ import type { ComposableFunction, PhasedComponent, PhasedRender, FunctionCompone import { renderForJsxRuntime } from './render'; import type { LegacyDirectComponent } from './render.types'; +/** + * Extract the phased render function from a component, if it has one. + * Handles both the newer PhasedComponent pattern (_phasedRender) and the legacy + * ComposableFunction pattern (_staged) for backward compatibility. + * + * @param component - The component to extract the phased render from + * @returns The phased render function if present, undefined otherwise + */ export function getPhasedRender(component: React.ComponentType): PhasedRender | undefined { // only a function component can have a phased render - if (typeof component !== 'function') { + if (typeof component === 'function') { // if this has a phased render function, return it if ((component as PhasedComponent)._phasedRender) { return (component as PhasedComponent)._phasedRender; diff --git a/packages/framework-base/src/component-patterns/render.types.ts b/packages/framework-base/src/component-patterns/render.types.ts index 9d1f84a9f2..33c4b83005 100644 --- a/packages/framework-base/src/component-patterns/render.types.ts +++ b/packages/framework-base/src/component-patterns/render.types.ts @@ -72,49 +72,53 @@ export type SlotFn = { }; /** - * MULTI-STAGE RENDERING + * PHASED RENDERING (formerly called "staged" or "two-stage" rendering) * - * The above direct rendering pattern is useful for simple components, but it does not allow for hooks or complex logic. The staged render pattern allows - * for a component to be rendered in two stages, allowing for hooks to be used in the first stage and then the second stage to be a simple render function that can + * The above direct rendering pattern is useful for simple components, but it does not allow for hooks or complex logic. The phased render pattern allows + * for a component to be rendered in two phases, allowing for hooks to be used in the first phase and then the second phase to be a simple render function that can * be called directly. * - * In code that respects the pattern the first stage will be called with props (though children will not be present) and will return a function that will be called - * with additional props, this time with children present. This allows for the first stage to handle all the logic and hooks, while the second stage can be a simple render function + * In code that respects the pattern, the first phase will be called with props (though children will not be present) and will return a function that will be called + * with additional props, this time with children present. This allows for the first phase to handle all the logic and hooks, while the second phase can be a simple render function * that can leverage direct rendering if supported. * - * The component itself will be a FunctionComponent, but it will have an attached property that is the staged render function. This allows the component to be used in two + * The component itself will be a FunctionComponent, but it will have an attached property that is the phased render function. This allows the component to be used in two * parts via the useSlot hook, or to be used directly in JSX/TSX as a normal component. */ /** - * This is an updated version of the staged render that handles children and types more consistently. Generally children - * will be passed as part of the props for component rendering, it is inconsistent to have them as a variable argument. + * Phased render function signature. This is the recommended pattern for components that need hooks. * - * The `children` prop will be automatically inferred and typed correctly by the prop type. Hooks are still expected + * Phase 1 receives props (without children) and can use hooks to compute derived state. + * Phase 2 returns a component that will be called with props including children. + * + * Children will be passed as part of the props for component rendering. The `children` prop will be + * automatically inferred and typed correctly by the prop type. */ export type PhasedRender = (props: TProps) => React.ComponentType>; /** - * Component type for a component that can be rendered in two stages, with the attached render function. + * Component type for a component that can be rendered in two phases, with the attached phased render function. + * Use phasedComponent() to create these. */ export type PhasedComponent = FunctionComponent & { _phasedRender?: PhasedRender; }; /** - * The final rendering of the props in a staged render. This is the function component signature that matches that of + * The final rendering of the props in a phased render. This is the function component signature that matches that of * React.createElement, children (if present) will be part of the variable args at the end. */ export type FinalRender = (props: TProps, ...children: React.ReactNode[]) => React.JSX.Element | null; /** - * Signature for a staged render function. - * @deprecated Use TwoStageRender instead + * Legacy staged render function signature. + * @deprecated Use PhasedRender instead. This older pattern splits children from props which is inconsistent with React conventions. */ export type StagedRender = (props: TProps, ...args: any[]) => FinalRender; /** - * Signature for a component that uses the staged render pattern. - * @deprecated Use TwoStageRender instead + * Legacy component type that uses the staged render pattern. + * @deprecated Use PhasedComponent instead. Create with phasedComponent() rather than stagedComponent(). */ export type ComposableFunction = FunctionComponent & { _staged?: StagedRender }; diff --git a/packages/framework-base/src/index.ts b/packages/framework-base/src/index.ts index c1c34c3b41..913b298f25 100644 --- a/packages/framework-base/src/index.ts +++ b/packages/framework-base/src/index.ts @@ -19,11 +19,14 @@ export type { StyleProp } from './merge-props/mergeStyles.types'; export { mergeStyles } from './merge-props/mergeStyles'; export { mergeProps } from './merge-props/mergeProps'; -// component pattern exports +// component pattern exports - rendering utilities export { renderForJsxRuntime, renderSlot, asDirectComponent } from './component-patterns/render'; + +// component pattern exports - core types export type { DirectComponent, FunctionComponent, + FunctionComponentCore, LegacyDirectComponent, PhasedComponent, PhasedRender, @@ -36,10 +39,16 @@ export type { SlotFn, NativeReactType, } from './component-patterns/render.types'; + +// component pattern exports - component builders export { directComponent } from './component-patterns/directComponent'; export { getPhasedRender, phasedComponent } from './component-patterns/phasedComponent'; -export { withSlots } from './component-patterns/withSlots'; export { stagedComponent } from './component-patterns/stagedComponent'; + +// component pattern exports - legacy JSX handlers +export { withSlots } from './component-patterns/withSlots'; + +// jsx runtime exports export { jsx, jsxs } from './jsx-runtime'; // general utilities From e1508e2f226c31444a890e275c07dfb2a910a00d Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Mon, 2 Feb 2026 11:49:59 -0800 Subject: [PATCH 20/29] fix dead links in markdown files --- CONTRIBUTING.md | 6 +++--- packages/components/Avatar/SPEC.md | 2 +- packages/components/Badge/SPEC.md | 2 +- packages/components/Button/SPEC.md | 2 +- packages/components/Button/src/CompoundButton/SPEC.md | 2 +- packages/components/Button/src/FAB/SPEC.md | 2 +- packages/components/Button/src/ToggleButton/SPEC.md | 2 +- packages/components/Checkbox/SPEC.md | 2 +- packages/components/Chip/SPEC.md | 2 +- packages/components/Icon/SPEC.md | 2 +- packages/components/Input/SPEC.md | 2 +- packages/components/Link/SPEC.md | 2 +- packages/components/RadioGroup/SPEC.md | 2 +- packages/components/Switch/SPEC.md | 2 +- packages/components/TabList/SPEC.md | 2 +- packages/components/Text/SPEC.md | 2 +- packages/experimental/Shadow/SPEC.md | 2 +- packages/experimental/Shimmer/SPEC.md | 2 +- packages/experimental/Tooltip/SPEC.md | 2 +- 19 files changed, 21 insertions(+), 21 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 47598bb0d3..1915869ff8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,7 +6,7 @@ This guide assumes you: - Have read through the [React Native Docs](https://reactnative.dev/docs/getting-started). In particular: - Understand classes vs function components (we use the latter) and [hooks](https://reactjs.org/docs/hooks-intro.html). Here's a good [video](https://www.youtube.com/watch?v=dpw9EHDh2bM) that explains function components and hooks for traditional OOP developers. - - Understand [Native Modules](https://reactnative.dev/docs/0.74/native-modules-intro). + - Understand [Native Modules](https://reactnative.dev/docs/turbo-native-modules-introduction). - Have a local fork of FluentUI React Native and have run the test app. ## Understanding the Repository Structure @@ -44,7 +44,7 @@ Tokens help us achieve simpler customization for complex higher order components This section covers creating and adding a new component package to FluentUI React Native's monorepo. If you are instead working on an existing component and adding a native module, skip to the next two sections. -Most components should use the compose framework as it offers the comprehensive set of patterns like tokens and slots, but if you're creating a simple component that doesn't require those patterns, there's a lighter pattern called [stagedComponent](./packages/framework/use-slot/src/stagedComponent.ts). The stagedComponent pattern splits up the render function into two stages. Stage 1 handles building props and hook calls (best to separate the hook calls from the render tree since they rely on call order). Stage 2 returns the actual element tree, any conditional branching should happen here (Icon is a good example of using stagedCompoenent). +Most components should use the compose framework as it offers the comprehensive set of patterns like tokens and slots, but if you're creating a simple component that doesn't require those patterns, there's a lighter pattern called [stagedComponent](./packages/framework-base/src/component-patterns/stagedComponent.ts). The stagedComponent pattern splits up the render function into two stages. Stage 1 handles building props and hook calls (best to separate the hook calls from the render tree since they rely on call order). Stage 2 returns the actual element tree, any conditional branching should happen here (Icon is a good example of using stagedCompoenent). 1. Create a new directory in of these two locations, depending on your component: @@ -82,7 +82,7 @@ Reach out to Samuel Freiberg with any questions related to E2E testing. ## Adding native code to your new component -Through the power of [Native Modules](https://reactnative.dev/docs/0.74/native-modules-intro), we are able to create components that are comprised of native platform code, rather than JS. This is particularly useful if you want platform specific behavior, or if you want a component that feels much more aligned to it's specific platform. The downside is you must implement the Native module for every platform you wish to support. It's worth investigating whether you truly need a native module, or if a more cross platform JS implementation is the better approach. +Through the power of [Native Modules](https://reactnative.dev/docs/turbo-native-modules-introduction), we are able to create components that are comprised of native platform code, rather than JS. This is particularly useful if you want platform specific behavior, or if you want a component that feels much more aligned to it's specific platform. The downside is you must implement the Native module for every platform you wish to support. It's worth investigating whether you truly need a native module, or if a more cross platform JS implementation is the better approach. There are a few caveats to know of adding a native module to a FluentUI React Native component: diff --git a/packages/components/Avatar/SPEC.md b/packages/components/Avatar/SPEC.md index dbf2645ec4..408d6771ae 100644 --- a/packages/components/Avatar/SPEC.md +++ b/packages/components/Avatar/SPEC.md @@ -20,7 +20,7 @@ Basic examples: ``` -More examples on the [Test pages for the Avatar](../../../apps/fluent-tester/src/TestComponents/Avatar). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). +More examples on the [Test pages for the Avatar](../../../apps/tester-core/src/TestComponents/Avatar). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). ## Variants diff --git a/packages/components/Badge/SPEC.md b/packages/components/Badge/SPEC.md index 0e63e67f57..ead4bd354c 100644 --- a/packages/components/Badge/SPEC.md +++ b/packages/components/Badge/SPEC.md @@ -24,7 +24,7 @@ Basic examples: ``` -More examples on the [Test pages for the Badge](../../../apps/fluent-tester/src/TestComponents/Badge). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). +More examples on the [Test pages for the Badge](../../../apps/tester-core/src/TestComponents/Badge). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). ## Visual Examples diff --git a/packages/components/Button/SPEC.md b/packages/components/Button/SPEC.md index c6863970b8..e0220ddfa3 100644 --- a/packages/components/Button/SPEC.md +++ b/packages/components/Button/SPEC.md @@ -28,7 +28,7 @@ Basic examples: ``` -More examples on the [Test pages for the Button](../../../apps/fluent-tester/src/TestComponents/Button). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). +More examples on the [Test pages for the Button](../../../apps/tester-core/src/TestComponents/Button). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). ## Visual Examples diff --git a/packages/components/Button/src/CompoundButton/SPEC.md b/packages/components/Button/src/CompoundButton/SPEC.md index f87cb6f0b8..8bd4fbb0ee 100644 --- a/packages/components/Button/src/CompoundButton/SPEC.md +++ b/packages/components/Button/src/CompoundButton/SPEC.md @@ -22,7 +22,7 @@ Basic examples: Text ``` -More examples on the [Test pages for the Button](../../../../../apps/fluent-tester/src/TestComponents/Button). Instructions on running the tester app can be found [here](../../../../../apps/fluent-tester/README.md). +More examples on the [Test pages for the Button](../../../../../apps/tester-core/src/TestComponents/Button). Instructions on running the tester app can be found [here](../../../../../apps/fluent-tester/README.md). ## Visual Examples diff --git a/packages/components/Button/src/FAB/SPEC.md b/packages/components/Button/src/FAB/SPEC.md index 23fa6974d2..5cd769f523 100644 --- a/packages/components/Button/src/FAB/SPEC.md +++ b/packages/components/Button/src/FAB/SPEC.md @@ -25,7 +25,7 @@ const flipFABcontent = React.useCallback(() => setShowFABText(!showFABText), [sh Text ``` -More examples on the [Test pages for the Button](../../../../../apps/fluent-tester/src/TestComponents/Button). Instructions on running the tester app can be found [here](../../../../../apps/fluent-tester/README.md). +More examples on the [Test pages for the Button](../../../../../apps/tester-core/src/TestComponents/Button). Instructions on running the tester app can be found [here](../../../../../apps/fluent-tester/README.md). ## Visual Examples diff --git a/packages/components/Button/src/ToggleButton/SPEC.md b/packages/components/Button/src/ToggleButton/SPEC.md index f35047a9b2..f047594792 100644 --- a/packages/components/Button/src/ToggleButton/SPEC.md +++ b/packages/components/Button/src/ToggleButton/SPEC.md @@ -24,7 +24,7 @@ Basic examples: Text ``` -More examples on the [Test pages for the Button](../../../../../apps/fluent-tester/src/TestComponents/Button). Instructions on running the tester app can be found [here](../../../../../apps/fluent-tester/README.md). +More examples on the [Test pages for the Button](../../../../../apps/tester-core/src/TestComponents/Button). Instructions on running the tester app can be found [here](../../../../../apps/fluent-tester/README.md). ## Visual Examples diff --git a/packages/components/Checkbox/SPEC.md b/packages/components/Checkbox/SPEC.md index da1aff58d0..4af8ca687e 100644 --- a/packages/components/Checkbox/SPEC.md +++ b/packages/components/Checkbox/SPEC.md @@ -26,7 +26,7 @@ Basic examples: ``` -More examples on the [Test pages for the Checkbox](../../../apps/fluent-tester/src/TestComponents/CheckboxV1). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). +More examples on the [Test pages for the Checkbox](../../../apps/tester-core/src/TestComponents/CheckboxV1). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). ## Visual Examples diff --git a/packages/components/Chip/SPEC.md b/packages/components/Chip/SPEC.md index 34eab28b9f..499907ca2e 100644 --- a/packages/components/Chip/SPEC.md +++ b/packages/components/Chip/SPEC.md @@ -18,7 +18,7 @@ Basic examples: ``` -More examples on the [Test pages for the Chip](../../../apps/fluent-tester/src/TestComponents/Chip). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). +More examples on the [Test pages for the Chip](../../../apps/tester-core/src/TestComponents/Chip). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). ## Visual Examples diff --git a/packages/components/Icon/SPEC.md b/packages/components/Icon/SPEC.md index ecf9370a19..da17a29336 100644 --- a/packages/components/Icon/SPEC.md +++ b/packages/components/Icon/SPEC.md @@ -42,7 +42,7 @@ const svgSrcProps: SvgIconProps = { ``` -More examples on the [Test pages for the Icon](../../../apps/fluent-tester/src/TestComponents/Icon). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). +More examples on the [Test pages for the Icon](../../../apps/tester-core/src/TestComponents/Icon). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). ## Visual Examples diff --git a/packages/components/Input/SPEC.md b/packages/components/Input/SPEC.md index 96b5eeaf2a..39a1ac265a 100644 --- a/packages/components/Input/SPEC.md +++ b/packages/components/Input/SPEC.md @@ -24,7 +24,7 @@ Basic examples: /> ``` -More examples on the [Test pages for the Input](../../../apps/fluent-tester/src/TestComponents/Input). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). +More examples on the [Test pages for the Input](../../../apps/tester-core/src/TestComponents/Input). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). ## Visual Examples diff --git a/packages/components/Link/SPEC.md b/packages/components/Link/SPEC.md index 1428edea56..b1d1b0efdd 100644 --- a/packages/components/Link/SPEC.md +++ b/packages/components/Link/SPEC.md @@ -25,7 +25,7 @@ Basic example: Click to Navigate. ``` -More examples on the [Test pages for Link](../../../apps/fluent-tester/src/TestComponents/LinkV1). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). +More examples on the [Test pages for Link](../../../apps/tester-core/src/TestComponents/LinkV1). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). ## Visual Examples diff --git a/packages/components/RadioGroup/SPEC.md b/packages/components/RadioGroup/SPEC.md index 14218ce3f5..cddb63c7fa 100644 --- a/packages/components/RadioGroup/SPEC.md +++ b/packages/components/RadioGroup/SPEC.md @@ -23,7 +23,7 @@ const radiogroup = ( ); ``` -More examples on the [Test pages for RadioGroup](../../../apps/fluent-tester/src/TestComponents/RadioGroupV1). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). +More examples on the [Test pages for RadioGroup](../../../apps/tester-core/src/TestComponents/RadioGroupV1). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). ## Visual Examples diff --git a/packages/components/Switch/SPEC.md b/packages/components/Switch/SPEC.md index 28d6994472..e5ac00f29f 100644 --- a/packages/components/Switch/SPEC.md +++ b/packages/components/Switch/SPEC.md @@ -16,7 +16,7 @@ Basic example: ``` -More examples on the [Test pages for the Switch](../../../apps/fluent-tester/src/TestComponents/Switch). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). +More examples on the [Test pages for the Switch](../../../apps/tester-core/src/TestComponents/Switch). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). ## Visual Examples diff --git a/packages/components/TabList/SPEC.md b/packages/components/TabList/SPEC.md index c56e2ac181..4909b65afe 100644 --- a/packages/components/TabList/SPEC.md +++ b/packages/components/TabList/SPEC.md @@ -22,7 +22,7 @@ const tablist = ( ); ``` -More examples on the [Test pages for TabList](../../../apps/fluent-tester/src/TestComponents/TabList). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). +More examples on the [Test pages for TabList](../../../apps/tester-core/src/TestComponents/TabList). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). ## Visual Examples diff --git a/packages/components/Text/SPEC.md b/packages/components/Text/SPEC.md index d58ddcf377..a7a2de18f2 100644 --- a/packages/components/Text/SPEC.md +++ b/packages/components/Text/SPEC.md @@ -24,7 +24,7 @@ Basic example: Hello World ``` -More examples on the [Test pages for Text](../../../apps/fluent-tester/src/TestComponents/TextV1). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). +More examples on the [Test pages for Text](../../../apps/tester-core/src/TestComponents/TextV1). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). ## Visual Examples diff --git a/packages/experimental/Shadow/SPEC.md b/packages/experimental/Shadow/SPEC.md index 2c6388c8f2..49f18853b4 100644 --- a/packages/experimental/Shadow/SPEC.md +++ b/packages/experimental/Shadow/SPEC.md @@ -33,7 +33,7 @@ Examples adding some Shadows to a Button: ``` -For more examples of using Shadow, please see the [ShadowTest test page](https://github.com/microsoft/fluentui-react-native/tree/main/apps/fluent-tester/src/TestComponents/Shadow) in the [Fluent Tester app](https://github.com/microsoft/fluentui-react-native/blob/main/apps/fluent-tester/README.md). +For more examples of using Shadow, please see the [ShadowTest test page](https://github.com/microsoft/fluentui-react-native/tree/main/apps/tester-core/src/TestComponents/Shadow) in the [Fluent Tester app](https://github.com/microsoft/fluentui-react-native/blob/main/apps/fluent-tester/README.md). For an example of adding a Shadow as a slot to a Fluent component, please see the [FAB component](https://github.com/microsoft/fluentui-react-native/tree/main/packages/components/Button/src/FAB) - this component exists on both iOS and Android, but currently only the iOS version uses the Shadow component. The [Notification component](https://github.com/microsoft/fluentui-react-native/tree/main/packages/components/Notification) is another example that uses the Shadow component. diff --git a/packages/experimental/Shimmer/SPEC.md b/packages/experimental/Shimmer/SPEC.md index 4df2ea4370..2f58da54cd 100644 --- a/packages/experimental/Shimmer/SPEC.md +++ b/packages/experimental/Shimmer/SPEC.md @@ -57,7 +57,7 @@ function shimmerRects(): Array { ; ``` -More examples on the [Test pages for the Shimmer](../../../apps/fluent-tester/src/TestComponents/Shimmer). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). +More examples on the [Test pages for the Shimmer](../../../apps/tester-core/src/TestComponents/Shimmer). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). ## Visual Examples diff --git a/packages/experimental/Tooltip/SPEC.md b/packages/experimental/Tooltip/SPEC.md index 872ddec43c..62425fe9c0 100644 --- a/packages/experimental/Tooltip/SPEC.md +++ b/packages/experimental/Tooltip/SPEC.md @@ -16,7 +16,7 @@ const tooltip = ( ); ``` -More examples on the [Test pages for Tooltip](../../../apps/fluent-tester/src/TestComponents/Tooltip). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). +More examples on the [Test pages for Tooltip](../../../apps/tester-core/src/TestComponents/Tooltip). Instructions on running the tester app can be found [here](../../../apps/fluent-tester/README.md). ## Visual Examples From e043dddbfd8cece74408da4e309a2d08ce713f9b Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Mon, 2 Feb 2026 11:54:15 -0800 Subject: [PATCH 21/29] Change files --- ...native-avatar-689eeb48-a17f-4e9e-b79f-0851a62daeb1.json | 7 +++++++ ...-native-badge-c8e784a3-a099-423c-9b00-394902c91768.json | 7 +++++++ ...tive-checkbox-f7259c8f-e095-4e14-bba6-308783257d5a.json | 7 +++++++ ...t-native-chip-75152240-0686-467f-91ab-065fe4a758bb.json | 7 +++++++ ...ental-shimmer-2dc223cd-30f0-49d6-89e5-55a93f329af2.json | 7 +++++++ ...-native-input-2c14e3bd-0d66-406a-9a03-e69d6f966661.json | 7 +++++++ ...t-native-link-9380078e-205f-4cb3-9fb0-ae48cc0b919c.json | 7 +++++++ ...e-radio-group-498dca51-c0bd-40d9-8dc7-857fc6a801c2.json | 7 +++++++ ...t-native-text-56972ac3-eb80-4ea3-9803-94b9a069b787.json | 7 +++++++ 9 files changed, 63 insertions(+) create mode 100644 change/@fluentui-react-native-avatar-689eeb48-a17f-4e9e-b79f-0851a62daeb1.json create mode 100644 change/@fluentui-react-native-badge-c8e784a3-a099-423c-9b00-394902c91768.json create mode 100644 change/@fluentui-react-native-checkbox-f7259c8f-e095-4e14-bba6-308783257d5a.json create mode 100644 change/@fluentui-react-native-chip-75152240-0686-467f-91ab-065fe4a758bb.json create mode 100644 change/@fluentui-react-native-experimental-shimmer-2dc223cd-30f0-49d6-89e5-55a93f329af2.json create mode 100644 change/@fluentui-react-native-input-2c14e3bd-0d66-406a-9a03-e69d6f966661.json create mode 100644 change/@fluentui-react-native-link-9380078e-205f-4cb3-9fb0-ae48cc0b919c.json create mode 100644 change/@fluentui-react-native-radio-group-498dca51-c0bd-40d9-8dc7-857fc6a801c2.json create mode 100644 change/@fluentui-react-native-text-56972ac3-eb80-4ea3-9803-94b9a069b787.json diff --git a/change/@fluentui-react-native-avatar-689eeb48-a17f-4e9e-b79f-0851a62daeb1.json b/change/@fluentui-react-native-avatar-689eeb48-a17f-4e9e-b79f-0851a62daeb1.json new file mode 100644 index 0000000000..6252038371 --- /dev/null +++ b/change/@fluentui-react-native-avatar-689eeb48-a17f-4e9e-b79f-0851a62daeb1.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "fix dead links in markdown files", + "packageName": "@fluentui-react-native/avatar", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-react-native-badge-c8e784a3-a099-423c-9b00-394902c91768.json b/change/@fluentui-react-native-badge-c8e784a3-a099-423c-9b00-394902c91768.json new file mode 100644 index 0000000000..5a9170abe0 --- /dev/null +++ b/change/@fluentui-react-native-badge-c8e784a3-a099-423c-9b00-394902c91768.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "fix dead links in markdown files", + "packageName": "@fluentui-react-native/badge", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-react-native-checkbox-f7259c8f-e095-4e14-bba6-308783257d5a.json b/change/@fluentui-react-native-checkbox-f7259c8f-e095-4e14-bba6-308783257d5a.json new file mode 100644 index 0000000000..7fb9a0bf7d --- /dev/null +++ b/change/@fluentui-react-native-checkbox-f7259c8f-e095-4e14-bba6-308783257d5a.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "fix dead links in markdown files", + "packageName": "@fluentui-react-native/checkbox", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-react-native-chip-75152240-0686-467f-91ab-065fe4a758bb.json b/change/@fluentui-react-native-chip-75152240-0686-467f-91ab-065fe4a758bb.json new file mode 100644 index 0000000000..eac0aa4e6f --- /dev/null +++ b/change/@fluentui-react-native-chip-75152240-0686-467f-91ab-065fe4a758bb.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "fix dead links in markdown files", + "packageName": "@fluentui-react-native/chip", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-react-native-experimental-shimmer-2dc223cd-30f0-49d6-89e5-55a93f329af2.json b/change/@fluentui-react-native-experimental-shimmer-2dc223cd-30f0-49d6-89e5-55a93f329af2.json new file mode 100644 index 0000000000..2eed07832b --- /dev/null +++ b/change/@fluentui-react-native-experimental-shimmer-2dc223cd-30f0-49d6-89e5-55a93f329af2.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "fix dead links in markdown files", + "packageName": "@fluentui-react-native/experimental-shimmer", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-react-native-input-2c14e3bd-0d66-406a-9a03-e69d6f966661.json b/change/@fluentui-react-native-input-2c14e3bd-0d66-406a-9a03-e69d6f966661.json new file mode 100644 index 0000000000..0c9de6905c --- /dev/null +++ b/change/@fluentui-react-native-input-2c14e3bd-0d66-406a-9a03-e69d6f966661.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "fix dead links in markdown files", + "packageName": "@fluentui-react-native/input", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-react-native-link-9380078e-205f-4cb3-9fb0-ae48cc0b919c.json b/change/@fluentui-react-native-link-9380078e-205f-4cb3-9fb0-ae48cc0b919c.json new file mode 100644 index 0000000000..2bfccf40ba --- /dev/null +++ b/change/@fluentui-react-native-link-9380078e-205f-4cb3-9fb0-ae48cc0b919c.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "fix dead links in markdown files", + "packageName": "@fluentui-react-native/link", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-react-native-radio-group-498dca51-c0bd-40d9-8dc7-857fc6a801c2.json b/change/@fluentui-react-native-radio-group-498dca51-c0bd-40d9-8dc7-857fc6a801c2.json new file mode 100644 index 0000000000..4142f4d0bb --- /dev/null +++ b/change/@fluentui-react-native-radio-group-498dca51-c0bd-40d9-8dc7-857fc6a801c2.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "fix dead links in markdown files", + "packageName": "@fluentui-react-native/radio-group", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "none" +} diff --git a/change/@fluentui-react-native-text-56972ac3-eb80-4ea3-9803-94b9a069b787.json b/change/@fluentui-react-native-text-56972ac3-eb80-4ea3-9803-94b9a069b787.json new file mode 100644 index 0000000000..4886e4d1d3 --- /dev/null +++ b/change/@fluentui-react-native-text-56972ac3-eb80-4ea3-9803-94b9a069b787.json @@ -0,0 +1,7 @@ +{ + "type": "none", + "comment": "fix dead links in markdown files", + "packageName": "@fluentui-react-native/text", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "none" +} From 382cb624a3bb432c3b84c65e9518fb9858069c29 Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Tue, 3 Feb 2026 17:10:51 -0800 Subject: [PATCH 22/29] upgrade to RN 81, React 19, and fix builds --- apps/E2E/package.json | 14 +- apps/tester-core/package.json | 27 +- apps/tester-core/src/FluentTester.tsx | 13 +- .../TestComponents/Button/E2EButtonTest.tsx | 16 +- .../src/TestComponents/Common/Slider.tsx | 4 +- .../src/TestComponents/Menu/MenuTest.tsx | 6 +- .../RadioGroupLegacy/RadioGroupLegacyTest.tsx | 8 +- .../RadioGroupV1/DefaultRadioGroup.tsx | 8 +- docs/pages/Components/RadioGroup.md | 18 +- packages/components/Avatar/package.json | 23 +- packages/components/Badge/package.json | 23 +- packages/components/Button/package.json | 23 +- .../components/Button/src/Button.types.ts | 9 +- .../Button/src/deprecated/Button.types.ts | 3 +- packages/components/Callout/package.json | 21 +- packages/components/Checkbox/package.json | 23 +- .../components/Checkbox/src/Checkbox.types.ts | 4 +- packages/components/Chip/package.json | 23 +- .../components/ContextualMenu/package.json | 23 +- packages/components/Divider/package.json | 23 +- .../components/FocusTrapZone/package.json | 21 +- packages/components/FocusZone/package.json | 23 +- packages/components/Icon/package.json | 23 +- packages/components/Icon/src/legacy/Icon.tsx | 2 +- packages/components/Input/package.json | 23 +- packages/components/Link/package.json | 21 +- packages/components/Menu/package.json | 23 +- .../Menu/src/MenuCallout/MenuCallout.types.ts | 2 +- .../Menu/src/MenuGroup/MenuGroup.tsx | 2 +- .../MenuItemCheckbox.types.ts | 4 +- .../src/MenuItemRadio/MenuItemRadio.types.ts | 4 +- .../components/Menu/src/MenuList/MenuList.tsx | 2 +- .../Menu/src/MenuList/MenuList.types.ts | 4 +- .../Menu/src/MenuList/useMenuList.ts | 3 +- .../Menu/src/MenuPopover/MenuPopover.types.ts | 2 +- .../Menu/src/MenuTrigger/useMenuTrigger.ts | 4 +- packages/components/MenuButton/package.json | 23 +- packages/components/Notification/package.json | 23 +- .../Notification/src/Notification.tsx | 4 +- packages/components/Persona/package.json | 15 +- packages/components/PersonaCoin/package.json | 15 +- packages/components/Pressable/package.json | 15 +- .../Pressable/src/Pressable.props.ts | 18 +- packages/components/RadioGroup/package.json | 23 +- .../RadioExperimental.test.tsx.snap | 4 +- .../RadioGroup/src/Radio/useRadio.ts | 4 +- .../RadioGroup/src/Radio/useRadio.win32.ts | 4 +- .../__tests__/RadioGroupExperimental.test.tsx | 20 +- .../RadioGroupExperimental.test.tsx.snap | 24 +- .../RadioGroup/src/legacy/RadioButton.tsx | 4 +- .../src/legacy/RadioButton.types.ts | 6 +- .../src/legacy/RadioButton.win32.tsx | 4 +- .../__tests__/RadioButtonGroup.test.tsx | 4 +- .../__snapshots__/RadioButton.test.tsx.snap | 2 +- .../RadioButtonGroup.test.tsx.snap | 8 +- packages/components/Separator/package.json | 21 +- packages/components/Stack/package.json | 21 +- packages/components/Switch/SPEC.md | 4 +- packages/components/Switch/package.json | 21 +- .../components/Switch/src/Switch.types.ts | 11 +- packages/components/TabList/SPEC.md | 2 +- packages/components/TabList/package.json | 23 +- .../components/TabList/src/Tab/Tab.types.ts | 4 +- .../__tests__/__snapshots__/Tab.test.tsx.snap | 10 +- packages/components/TabList/src/Tab/useTab.ts | 4 +- .../TabList/src/Tab/useTab.win32.ts | 4 +- .../__snapshots__/TabList.test.tsx.snap | 36 +- .../TabList/src/TabList/useTabList.ts | 4 +- packages/components/Text/package.json | 21 +- packages/components/Text/src/Text.tsx | 4 +- packages/configs/jest-config/package.json | 2 +- .../configs/kit-config/rnx-kit.config.cjs | 2 +- .../foundation-composable/package.json | 6 +- .../foundation-compose/package.json | 12 +- .../foundation-settings/package.json | 6 +- .../deprecated/foundation-tokens/README.md | 2 +- .../deprecated/foundation-tokens/package.json | 19 +- .../foundation-tokens/src/MockTokens.ts | 4 +- .../deprecated/theme-registry/package.json | 6 +- .../deprecated/themed-settings/package.json | 8 +- packages/deprecated/theming-ramp/package.json | 6 +- .../theming-react-native/package.json | 15 +- .../ActivityIndicator/package.json | 17 +- .../AppearanceAdditions/package.json | 15 +- packages/experimental/Avatar/package.json | 19 +- packages/experimental/Checkbox/package.json | 17 +- packages/experimental/Drawer/package.json | 21 +- .../experimental/Drawer/src/Drawer.types.ts | 7 +- packages/experimental/Dropdown/package.json | 17 +- packages/experimental/Expander/package.json | 15 +- packages/experimental/MenuButton/package.json | 23 +- .../NativeDatePicker/package.json | 11 +- .../NativeFontMetrics/package.json | 11 +- packages/experimental/Overflow/package.json | 18 +- packages/experimental/Popover/package.json | 15 +- packages/experimental/Shadow/package.json | 21 +- packages/experimental/Shimmer/SPEC.md | 2 +- packages/experimental/Shimmer/package.json | 23 +- packages/experimental/Spinner/package.json | 17 +- packages/experimental/Stack/package.json | 19 +- packages/experimental/Tooltip/package.json | 18 +- .../experimental/VibrancyView/package.json | 17 +- packages/framework-base/package.json | 4 +- .../src/merge-props/mergeStyles.ts | 57 +- .../src/merge-props/mergeStyles.types.ts | 4 +- packages/framework/composition/package.json | 12 +- packages/framework/framework/package.json | 21 +- .../framework/immutable-merge/package.json | 4 +- packages/framework/memo-cache/package.json | 4 +- packages/framework/merge-props/package.json | 4 +- packages/framework/theme/package.json | 13 +- .../framework/themed-stylesheet/package.json | 13 +- packages/framework/use-slot/package.json | 17 +- packages/framework/use-slots/package.json | 17 +- packages/framework/use-styling/README.md | 2 +- packages/framework/use-styling/package.json | 17 +- packages/framework/use-tokens/package.json | 17 +- .../use-tokens/src/useTokens.samples.test.tsx | 8 +- packages/libraries/core/package.json | 17 +- packages/libraries/core/src/index.ts | 2 - packages/theming/android-theme/package.json | 17 +- packages/theming/apple-theme/package.json | 17 +- packages/theming/default-theme/package.json | 17 +- packages/theming/theme-tokens/package.json | 11 +- packages/theming/theme-types/package.json | 11 +- packages/theming/theming-utils/package.json | 17 +- packages/theming/win32-theme/package.json | 17 +- packages/utils/adapters/jest.config.js | 1 - packages/utils/adapters/package.json | 20 +- .../adapters/src/__tests__/android.test.ts | 28 - .../utils/adapters/src/__tests__/base.test.ts | 139 -- .../utils/adapters/src/__tests__/ios.test.ts | 28 - .../adapters/src/__tests__/win32.test.ts | 25 - .../utils/adapters/src/adapter.types.macos.ts | 142 -- .../utils/adapters/src/adapter.types.win32.ts | 315 ---- .../adapters/src/adapter.types.windows.ts | 198 --- .../utils/adapters/src/adapters.android.ts | 224 --- packages/utils/adapters/src/adapters.ios.ts | 228 --- packages/utils/adapters/src/adapters.macos.ts | 273 --- packages/utils/adapters/src/adapters.ts | 350 +--- packages/utils/adapters/src/adapters.win32.ts | 320 ---- .../utils/adapters/src/adapters.windows.ts | 268 --- packages/utils/adapters/src/imageProps.ts | 23 + packages/utils/adapters/src/index.ts | 4 +- packages/utils/adapters/src/textProps.ts | 23 + packages/utils/adapters/src/viewProps.ts | 48 + packages/utils/interactive-hooks/package.json | 21 +- .../src/Pressability/CoreEventTypes.ts | 91 +- packages/utils/interactive-hooks/src/index.ts | 2 - .../src/useKeyProps.types.macos.ts | 31 - .../src/useKeyProps.types.ts | 11 +- .../src/useKeyProps.types.win32.ts | 12 - .../src/useKeyProps.types.windows.ts | 12 - packages/utils/styling/package.json | 11 +- packages/utils/test-tools/package.json | 2 +- packages/utils/tokens/package.json | 15 +- packages/utils/tokens/src/border-tokens.ts | 4 +- packages/utils/tokens/src/layout-tokens.ts | 2 +- packages/utils/tokens/src/shadow-tokens.ts | 12 +- packages/utils/tokens/src/text-tokens.ts | 4 +- packages/utils/tokens/src/tokenBuilder.ts | 23 +- yarn.lock | 1581 +++++++++++------ 162 files changed, 2114 insertions(+), 4013 deletions(-) delete mode 100644 packages/utils/adapters/jest.config.js delete mode 100644 packages/utils/adapters/src/__tests__/android.test.ts delete mode 100644 packages/utils/adapters/src/__tests__/base.test.ts delete mode 100644 packages/utils/adapters/src/__tests__/ios.test.ts delete mode 100644 packages/utils/adapters/src/__tests__/win32.test.ts delete mode 100644 packages/utils/adapters/src/adapter.types.macos.ts delete mode 100644 packages/utils/adapters/src/adapter.types.win32.ts delete mode 100644 packages/utils/adapters/src/adapter.types.windows.ts delete mode 100644 packages/utils/adapters/src/adapters.android.ts delete mode 100644 packages/utils/adapters/src/adapters.ios.ts delete mode 100644 packages/utils/adapters/src/adapters.macos.ts delete mode 100644 packages/utils/adapters/src/adapters.win32.ts delete mode 100644 packages/utils/adapters/src/adapters.windows.ts create mode 100644 packages/utils/adapters/src/imageProps.ts create mode 100644 packages/utils/adapters/src/textProps.ts create mode 100644 packages/utils/adapters/src/viewProps.ts delete mode 100644 packages/utils/interactive-hooks/src/useKeyProps.types.macos.ts delete mode 100644 packages/utils/interactive-hooks/src/useKeyProps.types.win32.ts delete mode 100644 packages/utils/interactive-hooks/src/useKeyProps.types.windows.ts diff --git a/apps/E2E/package.json b/apps/E2E/package.json index d58d1d9564..44aea0d00d 100644 --- a/apps/E2E/package.json +++ b/apps/E2E/package.json @@ -49,12 +49,12 @@ "@fluentui-react-native/focus-zone": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@office-iss/react-native-win32": "^0.74.0", - "@react-native/metro-babel-transformer": "^0.74.0", + "@office-iss/react-native-win32": "^0.81.0", + "@react-native/metro-babel-transformer": "^0.81.0", "@rnx-kit/metro-config": "catalog:", "@types/jasmine": "catalog:", "@types/node": "catalog:", - "@types/react": "~18.2.0", + "@types/react": "~19.1.0", "@wdio/appium-service": "catalog:", "@wdio/cli": "catalog:", "@wdio/globals": "catalog:", @@ -72,10 +72,10 @@ "cross-env": "catalog:", "expect-webdriverio": "catalog:", "metro-config": "^0.80.3", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0", "rimraf": "catalog:", "ts-node": "^10.7.0", "webdriverio": "catalog:" diff --git a/apps/tester-core/package.json b/apps/tester-core/package.json index dc8df500b0..d2e3dbabba 100644 --- a/apps/tester-core/package.json +++ b/apps/tester-core/package.json @@ -34,6 +34,7 @@ "preset": "react-native" }, "dependencies": { + "@fluentui-react-native/adapters": "workspace:*", "@fluentui-react-native/android-theme": "workspace:*", "@fluentui-react-native/apple-theme": "workspace:*", "@fluentui-react-native/avatar": "workspace:*", @@ -98,20 +99,20 @@ "@fluentui-react-native/eslint-config-rules": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@office-iss/react-native-win32": "^0.74.0", - "@react-native-community/cli": "^13.6.4", - "@react-native-community/cli-platform-android": "^13.6.4", - "@react-native-community/cli-platform-ios": "^13.6.4", + "@office-iss/react-native-win32": "^0.81.0", + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", "@react-native-windows/cli": "^0.74.0", "@react-native/babel-preset": "^0.74.0", "@react-native/metro-babel-transformer": "^0.74.0", - "@react-native/metro-config": "^0.74.0", + "@react-native/metro-config": "^0.81.0", "@rnx-kit/cli": "catalog:", "@rnx-kit/metro-config": "catalog:", "@rnx-kit/metro-resolver-symlinks": "catalog:", "@types/jasmine": "catalog:", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", "@wdio/cli": "catalog:", "@wdio/globals": "catalog:", "@wdio/jasmine-framework": "catalog:", @@ -120,14 +121,14 @@ "expect-webdriverio": "catalog:", "flow-bin": "^0.113.0", "metro-config": "^0.80.3", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", "react-native-svg-transformer": "^1.0.0", "react-native-test-app": "^3.9.2", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0", "webdriverio": "catalog:" }, "peerDependencies": { diff --git a/apps/tester-core/src/FluentTester.tsx b/apps/tester-core/src/FluentTester.tsx index 78fda8f40a..b0f3647375 100644 --- a/apps/tester-core/src/FluentTester.tsx +++ b/apps/tester-core/src/FluentTester.tsx @@ -111,10 +111,16 @@ export const FluentTester: React.FunctionComponent = (props: const theme = useTheme(); const themedStyles = getThemedStyles(theme); + const removeBackHandler = React.useMemo(() => { + return { + remove: undefined, + } as { remove?: () => void }; + }, []); + const onBackPress = React.useCallback(() => { setOnTestListView(true); - if (Platform.OS === 'android') { - BackHandler.removeEventListener('hardwareBackPress', onBackPress); + if (Platform.OS === 'android' && removeBackHandler.remove) { + removeBackHandler.remove(); } return true; }, []); @@ -187,7 +193,8 @@ export const FluentTester: React.FunctionComponent = (props: setOnTestListView(false); setSelectedTestIndex(index); if (Platform.OS === 'android') { - BackHandler.addEventListener('hardwareBackPress', onBackPress); + // add the listener and remember the remove function so it can be cleaned up later + removeBackHandler.remove = BackHandler.addEventListener('hardwareBackPress', onBackPress).remove; } }} style={mobileStyles.testListItem} diff --git a/apps/tester-core/src/TestComponents/Button/E2EButtonTest.tsx b/apps/tester-core/src/TestComponents/Button/E2EButtonTest.tsx index 1b305b610c..51ce77242f 100644 --- a/apps/tester-core/src/TestComponents/Button/E2EButtonTest.tsx +++ b/apps/tester-core/src/TestComponents/Button/E2EButtonTest.tsx @@ -1,5 +1,6 @@ import * as React from 'react'; import { View } from 'react-native'; +import type { NativeKeyEvent, HandledKeyEvent } from '@fluentui-react-native/adapters'; import { ButtonV1 as Button, Text } from '@fluentui/react-native'; import { @@ -15,26 +16,17 @@ import { BUTTON_FOCUSABLE_TEST_COMPONENT_LABEL, } from '@fluentui-react-native/e2e-testing'; import { Stack } from '@fluentui-react-native/stack'; -import type { IKeyboardEvent } from '@office-iss/react-native-win32'; import { stackStyle } from '../Common/styles'; import { testProps } from '../Common/TestProps'; -function keyEvent(key: string) { +function keyEvent(key: string): HandledKeyEvent { return { key, - capsLockKey: false, shiftKey: false, ctrlKey: false, altKey: false, metaKey: false, - numericPadKey: false, - helpKey: false, - functionKey: false, - ArrowLeft: false, - ArrowRight: false, - ArrowUp: false, - ArrowDown: false, }; } @@ -49,14 +41,14 @@ export const E2EButtonTest: React.FunctionComponent = () => { const keyPressProps = { keyDownEvents: [keyEvent('a')], - onKeyDown: (args: IKeyboardEvent) => { + onKeyDown: (args: NativeKeyEvent) => { if (args.nativeEvent.key === 'a') { setKeyDetected('a (down)'); args.stopPropagation(); } }, keyUpEvents: [keyEvent('b')], - onKeyUp: (args: IKeyboardEvent) => { + onKeyUp: (args: NativeKeyEvent) => { if (args.nativeEvent.key === 'b') { setKeyDetected('b (up)'); args.stopPropagation(); diff --git a/apps/tester-core/src/TestComponents/Common/Slider.tsx b/apps/tester-core/src/TestComponents/Common/Slider.tsx index 6f4b34ac28..79e4ea0d9d 100644 --- a/apps/tester-core/src/TestComponents/Common/Slider.tsx +++ b/apps/tester-core/src/TestComponents/Common/Slider.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import type { ViewProps, StyleProp, ViewStyle } from 'react-native'; +import type { ViewProps, ViewStyle } from 'react-native'; import { StyleSheet, Text, View } from 'react-native'; import { Separator, Pressable } from '@fluentui/react-native'; @@ -49,7 +49,7 @@ const styles = StyleSheet.create({ const Track = Separator.customize({ separatorWidth: 4 }); -function onThumbRenderStyle(state: IPressableState, thumbLocation: number): StyleProp { +function onThumbRenderStyle(state: IPressableState, thumbLocation: number): ViewStyle { return { ...styles.thumb, borderColor: state.pressed ? 'black' : state.hovered ? 'red' : '#7A7574', diff --git a/apps/tester-core/src/TestComponents/Menu/MenuTest.tsx b/apps/tester-core/src/TestComponents/Menu/MenuTest.tsx index 33f7e629cc..2c7aa2cdff 100644 --- a/apps/tester-core/src/TestComponents/Menu/MenuTest.tsx +++ b/apps/tester-core/src/TestComponents/Menu/MenuTest.tsx @@ -319,9 +319,9 @@ const MenuNofM: React.FunctionComponent = () => { A plain MenuItem A disabled MenuItem - A plain MenuItem + A plain MenuItem - {Platform.OS !== 'android' && } + {Platform.OS !== 'android' && } A disabled MenuItem @@ -352,7 +352,7 @@ const MenuWithCustomMenuTrigger: React.FunctionComponent = (props: Me A plain MenuItem A disabled MenuItem - A plain MenuItem + A plain MenuItem {Platform.OS !== 'android' && } diff --git a/apps/tester-core/src/TestComponents/RadioGroupLegacy/RadioGroupLegacyTest.tsx b/apps/tester-core/src/TestComponents/RadioGroupLegacy/RadioGroupLegacyTest.tsx index f7942b8fbe..675848de24 100644 --- a/apps/tester-core/src/TestComponents/RadioGroupLegacy/RadioGroupLegacyTest.tsx +++ b/apps/tester-core/src/TestComponents/RadioGroupLegacy/RadioGroupLegacyTest.tsx @@ -43,12 +43,12 @@ const BasicRadioGroup: React.FunctionComponent = () => { content="Option A" buttonKey="A" accessibilityLabel="Test Accessibility Label" - accessibilityPositionInSet={1} + accessibilityPosInSet={1} accessibilitySetSize={4} /> - - - + + + diff --git a/apps/tester-core/src/TestComponents/RadioGroupV1/DefaultRadioGroup.tsx b/apps/tester-core/src/TestComponents/RadioGroupV1/DefaultRadioGroup.tsx index a1ac9d15ba..6c1f5b2f2f 100644 --- a/apps/tester-core/src/TestComponents/RadioGroupV1/DefaultRadioGroup.tsx +++ b/apps/tester-core/src/TestComponents/RadioGroupV1/DefaultRadioGroup.tsx @@ -31,12 +31,12 @@ export const DefaultRadioGroup: React.FunctionComponent = () => { label="Option A" value="A" accessibilityLabel="Test Accessibility Label" - accessibilityPositionInSet={1} + accessibilityPosInSet={1} accessibilitySetSize={4} /> - - - + + + diff --git a/docs/pages/Components/RadioGroup.md b/docs/pages/Components/RadioGroup.md index df9a23c17d..4e121997fe 100644 --- a/docs/pages/Components/RadioGroup.md +++ b/docs/pages/Components/RadioGroup.md @@ -44,15 +44,15 @@ The goal of this RadioGroup component is to let users select one option from two ### RadioButton Component: -| Prop | Type | Default Value | Description | -| -------------------------- | ----------------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| content | string | | The text string for the option. | -| buttonKey | string | | A unique key-identifier for each option. | -| disabled | boolean | | Whether or not the radio button is selectable. | -| accessibilityPositionInSet | number | | Defines the current radio button's position in the radio group for accessibility purposes. This value is auto-generated iff RadioButtons are direct children of RadioGroup. Otherwise, it can be used to set the n-of-m values. | -| accessibilitySetSize | number | | Defines the number of radio buttons in the group for accessibility purposes. Defines the current radio button's position in the radio group for accessibility purposes. This value is auto-generated iff RadioButtons are direct children of RadioGroup. Otherwise, it can be used to set the n-of-m values. | -| accessibilityLabel | string | | An accessibility label for screen readers. If not provided, it will be set to the label of the radio button's content. | -| componentRef | `React.RefObject` | | A RefObject to access the IFocusable interface. Use this to access the public methods and properties of the component. | +| Prop | Type | Default Value | Description | +| --------------------- | ----------------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| content | string | | The text string for the option. | +| buttonKey | string | | A unique key-identifier for each option. | +| disabled | boolean | | Whether or not the radio button is selectable. | +| accessibilityPosInSet | number | | Defines the current radio button's position in the radio group for accessibility purposes. This value is auto-generated iff RadioButtons are direct children of RadioGroup. Otherwise, it can be used to set the n-of-m values. | +| accessibilitySetSize | number | | Defines the number of radio buttons in the group for accessibility purposes. Defines the current radio button's position in the radio group for accessibility purposes. This value is auto-generated iff RadioButtons are direct children of RadioGroup. Otherwise, it can be used to set the n-of-m values. | +| accessibilityLabel | string | | An accessibility label for screen readers. If not provided, it will be set to the label of the radio button's content. | +| componentRef | `React.RefObject` | | A RefObject to access the IFocusable interface. Use this to access the public methods and properties of the component. | ## RadioGroup Tokens diff --git a/packages/components/Avatar/package.json b/packages/components/Avatar/package.json index f4b031d836..70a6cc4eb0 100644 --- a/packages/components/Avatar/package.json +++ b/packages/components/Avatar/package.json @@ -52,16 +52,19 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/Badge/package.json b/packages/components/Badge/package.json index 2d91daf237..83870ea015 100644 --- a/packages/components/Badge/package.json +++ b/packages/components/Badge/package.json @@ -50,16 +50,19 @@ "@fluentui-react-native/scripts": "workspace:*", "@fluentui-react-native/test-tools": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/Button/package.json b/packages/components/Button/package.json index d204a04928..6b5a03b726 100644 --- a/packages/components/Button/package.json +++ b/packages/components/Button/package.json @@ -61,16 +61,19 @@ "@fluentui-react-native/scripts": "workspace:*", "@fluentui-react-native/test-tools": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/Button/src/Button.types.ts b/packages/components/Button/src/Button.types.ts index 78ac37f033..529e677ea9 100644 --- a/packages/components/Button/src/Button.types.ts +++ b/packages/components/Button/src/Button.types.ts @@ -1,7 +1,6 @@ import type * as React from 'react'; -import type { ViewStyle, ColorValue } from 'react-native'; +import type { ViewStyle, ColorValue, ViewProps, AnimatableNumericValue } from 'react-native'; -import type { IViewProps } from '@fluentui-react-native/adapters'; import type { IconProps, IconSourcesType } from '@fluentui-react-native/icon'; import type { IFocusable, InteractionEvent, PressablePropsExtended, PressableState } from '@fluentui-react-native/interactive-hooks'; import type { TextProps } from '@fluentui-react-native/text'; @@ -64,7 +63,7 @@ export interface ButtonCoreTokens extends LayoutTokens, FontTokens, IBorderToken */ borderInnerColor?: ColorValue; borderInnerWidth?: number; - borderInnerRadius?: number; + borderInnerRadius?: AnimatableNumericValue | string; borderInnerStyle?: ViewStyle['borderStyle']; } @@ -181,8 +180,8 @@ export interface ButtonInfo { export interface ButtonSlotProps { root: React.PropsWithRef; - rippleContainer?: IViewProps; // Android only - focusInnerBorder?: IViewProps; // Win32 only + rippleContainer?: ViewProps; // Android only + focusInnerBorder?: ViewProps; // Win32 only icon: IconProps; content: TextProps; } diff --git a/packages/components/Button/src/deprecated/Button.types.ts b/packages/components/Button/src/deprecated/Button.types.ts index 490fe22fb8..c8b5d6fb2f 100644 --- a/packages/components/Button/src/deprecated/Button.types.ts +++ b/packages/components/Button/src/deprecated/Button.types.ts @@ -1,7 +1,6 @@ import type * as React from 'react'; import type { PressableProps, ViewProps, ColorValue } from 'react-native'; -import type { IViewProps } from '@fluentui-react-native/adapters'; import type { IconProps, IconSourcesType } from '@fluentui-react-native/icon'; import type { IFocusable, IPressableState } from '@fluentui-react-native/interactive-hooks'; import type { IPressableProps } from '@fluentui-react-native/pressable'; @@ -142,7 +141,7 @@ export interface IButtonProps extends Omit { * Please see MIGRATION.md for details on how to move to the new Button. */ export interface IButtonSlotProps { - root: React.PropsWithRef; + root: React.PropsWithRef; ripple?: PressableProps; // This slot exists to enable ripple-effect in android. It does not affect other platforms. stack: ViewProps; borderWrapper: ViewProps; diff --git a/packages/components/Callout/package.json b/packages/components/Callout/package.json index 6266afad23..7a2984c404 100644 --- a/packages/components/Callout/package.json +++ b/packages/components/Callout/package.json @@ -47,15 +47,18 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/Checkbox/package.json b/packages/components/Checkbox/package.json index 1be108cf44..58d14836a2 100644 --- a/packages/components/Checkbox/package.json +++ b/packages/components/Checkbox/package.json @@ -57,16 +57,19 @@ "@fluentui-react-native/scripts": "workspace:*", "@fluentui-react-native/test-tools": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/Checkbox/src/Checkbox.types.ts b/packages/components/Checkbox/src/Checkbox.types.ts index fb66899c5a..9fd8f0f80c 100644 --- a/packages/components/Checkbox/src/Checkbox.types.ts +++ b/packages/components/Checkbox/src/Checkbox.types.ts @@ -1,5 +1,5 @@ import type * as React from 'react'; -import type { ColorValue, ViewStyle } from 'react-native'; +import type { ColorValue, ViewStyle, AnimatableNumericValue } from 'react-native'; import type { ITextProps, IViewProps } from '@fluentui-react-native/adapters'; import type { IFocusable, InteractionEvent, PressablePropsExtended, PressableState } from '@fluentui-react-native/interactive-hooks'; @@ -30,7 +30,7 @@ export interface CheckboxTokens extends FontTokens, IForegroundColorTokens, IBac /** * Border radius of the box containing the checkmark. */ - checkboxBorderRadius?: number; + checkboxBorderRadius?: AnimatableNumericValue | string; /** * Width of the border around the box containing the checkmark. diff --git a/packages/components/Chip/package.json b/packages/components/Chip/package.json index e60a3d0bf2..f5d5a087ac 100644 --- a/packages/components/Chip/package.json +++ b/packages/components/Chip/package.json @@ -47,16 +47,19 @@ "@fluentui-react-native/scripts": "workspace:*", "@fluentui-react-native/test-tools": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/ContextualMenu/package.json b/packages/components/ContextualMenu/package.json index 9146dad15d..fca6c69093 100644 --- a/packages/components/ContextualMenu/package.json +++ b/packages/components/ContextualMenu/package.json @@ -54,19 +54,22 @@ "@fluentui-react-native/pressable": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", "@react-native/metro-babel-transformer": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", "metro-config": "^0.80.3", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", "react-native-svg-transformer": "^1.0.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/Divider/package.json b/packages/components/Divider/package.json index cec546a49c..f319d59673 100644 --- a/packages/components/Divider/package.json +++ b/packages/components/Divider/package.json @@ -48,16 +48,19 @@ "@fluentui-react-native/scripts": "workspace:*", "@fluentui-react-native/test-tools": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/FocusTrapZone/package.json b/packages/components/FocusTrapZone/package.json index 4cd0bc6c80..868344415c 100644 --- a/packages/components/FocusTrapZone/package.json +++ b/packages/components/FocusTrapZone/package.json @@ -45,15 +45,18 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/FocusZone/package.json b/packages/components/FocusZone/package.json index 81d552351d..773740f6c9 100644 --- a/packages/components/FocusZone/package.json +++ b/packages/components/FocusZone/package.json @@ -45,16 +45,19 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-babel-transformer": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-babel-transformer": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/Icon/package.json b/packages/components/Icon/package.json index 41fe87eb4d..bfac026280 100644 --- a/packages/components/Icon/package.json +++ b/packages/components/Icon/package.json @@ -46,16 +46,19 @@ "@fluentui-react-native/scripts": "workspace:*", "@fluentui-react-native/test-tools": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/Icon/src/legacy/Icon.tsx b/packages/components/Icon/src/legacy/Icon.tsx index a6e94dbe60..182d8f2117 100644 --- a/packages/components/Icon/src/legacy/Icon.tsx +++ b/packages/components/Icon/src/legacy/Icon.tsx @@ -13,7 +13,7 @@ const rasterImageStyleCache = getTypedMemoCache(); function renderRasterImage(iconProps: IconProps) { const { width, height, color } = iconProps; - const style = mergeStyles( + const style = mergeStyles( iconProps.style, rasterImageStyleCache({ width: width, height: height, tintColor: color }, [width, height, color])[0], ); diff --git a/packages/components/Input/package.json b/packages/components/Input/package.json index dad259f165..e46f271da2 100644 --- a/packages/components/Input/package.json +++ b/packages/components/Input/package.json @@ -50,16 +50,19 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", "@fluentui-react-native/test-tools": "workspace:*", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/Link/package.json b/packages/components/Link/package.json index 76f589bd68..9a187c4560 100644 --- a/packages/components/Link/package.json +++ b/packages/components/Link/package.json @@ -51,15 +51,18 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", "@fluentui-react-native/test-tools": "workspace:*", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/Menu/package.json b/packages/components/Menu/package.json index 5ac786315d..4878bd4c65 100644 --- a/packages/components/Menu/package.json +++ b/packages/components/Menu/package.json @@ -56,17 +56,20 @@ "@fluentui-react-native/scripts": "workspace:*", "@fluentui-react-native/test-tools": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", "@types/node": "catalog:", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/Menu/src/MenuCallout/MenuCallout.types.ts b/packages/components/Menu/src/MenuCallout/MenuCallout.types.ts index 906a60664d..7bf31cf49a 100644 --- a/packages/components/Menu/src/MenuCallout/MenuCallout.types.ts +++ b/packages/components/Menu/src/MenuCallout/MenuCallout.types.ts @@ -12,7 +12,7 @@ export type MenuCalloutTokens = * The token for the corner radius for the Modal MenuPopover * @platform android macos */ - borderRadius?: AnimatableNumericValue; + borderRadius?: AnimatableNumericValue | string; /** * Shadown elevation token for the Modal MenuPopover diff --git a/packages/components/Menu/src/MenuGroup/MenuGroup.tsx b/packages/components/Menu/src/MenuGroup/MenuGroup.tsx index 45e60d98e5..8fb3e4fb6a 100644 --- a/packages/components/Menu/src/MenuGroup/MenuGroup.tsx +++ b/packages/components/Menu/src/MenuGroup/MenuGroup.tsx @@ -39,7 +39,7 @@ export const MenuGroup = compose({ return React.cloneElement( child as React.ReactElement>, { - accessibilityPositionInSet: child.props.accessibilityPositionInSet ?? itemPosition, // win32 + accessibilityPosInSet: child.props.accessibilityPosInSet ?? itemPosition, // win32 accessibilitySetSize: child.props.accessibilitySetSize ?? itemCount, //win32 } as any, ); diff --git a/packages/components/Menu/src/MenuItemCheckbox/MenuItemCheckbox.types.ts b/packages/components/Menu/src/MenuItemCheckbox/MenuItemCheckbox.types.ts index 23c71c4b0b..91b5b5ff08 100644 --- a/packages/components/Menu/src/MenuItemCheckbox/MenuItemCheckbox.types.ts +++ b/packages/components/Menu/src/MenuItemCheckbox/MenuItemCheckbox.types.ts @@ -1,5 +1,5 @@ import type * as React from 'react'; -import type { ColorValue, ImageProps } from 'react-native'; +import type { ColorValue, ImageProps, AnimatableNumericValue } from 'react-native'; import type { IViewProps } from '@fluentui-react-native/adapters'; import type { IconPropsV1 as IconProps } from '@fluentui-react-native/icon'; @@ -54,7 +54,7 @@ export interface MenuItemCheckboxTokens * Border radius of the box containing the checkmark. * @platform android */ - checkboxBorderRadius?: number; + checkboxBorderRadius?: AnimatableNumericValue | string; /** * Width of the border around the box containing the checkmark. diff --git a/packages/components/Menu/src/MenuItemRadio/MenuItemRadio.types.ts b/packages/components/Menu/src/MenuItemRadio/MenuItemRadio.types.ts index 6df89885c7..316fe78acf 100644 --- a/packages/components/Menu/src/MenuItemRadio/MenuItemRadio.types.ts +++ b/packages/components/Menu/src/MenuItemRadio/MenuItemRadio.types.ts @@ -1,5 +1,5 @@ import type * as React from 'react'; -import type { ColorValue, ImageProps, ViewStyle } from 'react-native'; +import type { ColorValue, ImageProps, ViewStyle, AnimatableNumericValue } from 'react-native'; import type { IViewProps } from '@fluentui-react-native/adapters'; import type { IconPropsV1 as IconProps } from '@fluentui-react-native/icon'; @@ -62,7 +62,7 @@ export interface MenuItemRadioTokens * Border radius of the box containing the radio. * @platform android */ - radioBorderRadius?: number; + radioBorderRadius?: AnimatableNumericValue | string; /** * Height and width of the box containing the radio. diff --git a/packages/components/Menu/src/MenuList/MenuList.tsx b/packages/components/Menu/src/MenuList/MenuList.tsx index e83af30d5f..e3387cfa68 100644 --- a/packages/components/Menu/src/MenuList/MenuList.tsx +++ b/packages/components/Menu/src/MenuList/MenuList.tsx @@ -49,7 +49,7 @@ export const MenuList = compose({ return React.cloneElement( child as React.ReactElement>, { - accessibilityPositionInSet: child.props.accessibilityPositionInSet ?? itemPosition, // win32 + accessibilityPosInSet: child.props.accessibilityPosInSet ?? itemPosition, // win32 accessibilitySetSize: child.props.accessibilitySetSize ?? itemCount, //win32 ...(child.props.tooltip && { alwaysShowToolTip: true }), } as any, diff --git a/packages/components/Menu/src/MenuList/MenuList.types.ts b/packages/components/Menu/src/MenuList/MenuList.types.ts index 648940c02f..eb42c7a9e8 100644 --- a/packages/components/Menu/src/MenuList/MenuList.types.ts +++ b/packages/components/Menu/src/MenuList/MenuList.types.ts @@ -1,5 +1,5 @@ import type React from 'react'; -import type { ScrollViewProps, View } from 'react-native'; +import type { ScrollViewProps, View, AnimatableNumericValue } from 'react-native'; import type { IViewProps } from '@fluentui-react-native/adapters'; import type { FocusZoneProps } from '@fluentui-react-native/focus-zone'; @@ -23,7 +23,7 @@ export interface MenuListTokens extends LayoutTokens, IBackgroundColorTokens { * Border radius of the menu list * @platform android macos */ - borderRadius?: number; + borderRadius?: AnimatableNumericValue | string; } export interface MenuListProps extends Omit { diff --git a/packages/components/Menu/src/MenuList/useMenuList.ts b/packages/components/Menu/src/MenuList/useMenuList.ts index 93f8a8d8cb..9287bb4533 100644 --- a/packages/components/Menu/src/MenuList/useMenuList.ts +++ b/packages/components/Menu/src/MenuList/useMenuList.ts @@ -3,6 +3,7 @@ import { Platform } from 'react-native'; import type { View } from 'react-native'; import type { InteractionEvent } from '@fluentui-react-native/interactive-hooks'; +import type { NativeKeyEvent } from '@fluentui-react-native/adapters'; import type { MenuListProps, MenuListState, TrackedMenuItem } from './MenuList.types'; import { useMenuContext } from '../context/menuContext'; @@ -137,7 +138,7 @@ export const useMenuList = (_props: MenuListProps): MenuListState => { [trackedMenuItems], ); - const onListKeyDown = (e: InteractionEvent) => { + const onListKeyDown = (e: NativeKeyEvent) => { const key = e.nativeEvent.key; if (handledKeys.includes(key)) { // For iOS and macOS, 'Home' and 'End' must set focus on the first and last enabled item. diff --git a/packages/components/Menu/src/MenuPopover/MenuPopover.types.ts b/packages/components/Menu/src/MenuPopover/MenuPopover.types.ts index 58450aeebe..72c726a6ac 100644 --- a/packages/components/Menu/src/MenuPopover/MenuPopover.types.ts +++ b/packages/components/Menu/src/MenuPopover/MenuPopover.types.ts @@ -13,7 +13,7 @@ export type MenuPopoverTokens = * The props for the corner radius for the Modal MenuPopover * @platform android macos */ - borderRadius?: AnimatableNumericValue; + borderRadius?: AnimatableNumericValue | string; /** * Shadown elevation for the Modal MenuPopover diff --git a/packages/components/Menu/src/MenuTrigger/useMenuTrigger.ts b/packages/components/Menu/src/MenuTrigger/useMenuTrigger.ts index a4efdfc244..19d25e1cd7 100644 --- a/packages/components/Menu/src/MenuTrigger/useMenuTrigger.ts +++ b/packages/components/Menu/src/MenuTrigger/useMenuTrigger.ts @@ -31,7 +31,7 @@ export const useMenuTrigger = (childProps: MenuTriggerChildProps): MenuTriggerSt accessibilityActions: childAccessibilityActions, accessibilityState: childAccessibilityState, onAccessibilityAction: childOnAccessibilityAction, - accessibilityPositionInSet: childAccessibilityPositionInSet, // win32 + accessibilityPosInSet: childaccessibilityPosInSet, // win32 accessibilitySetSize: childAccessibilitySetSize, // win32 onClick: childOnClick, onHoverIn: childOnHoverIn, @@ -125,7 +125,7 @@ export const useMenuTrigger = (childProps: MenuTriggerChildProps): MenuTriggerSt accessibilityState, accessibilityActions, onAccessibilityAction, - accessibilityPositionInSet: childAccessibilityPositionInSet ?? context.accessibilityPositionInSet, // win32 + accessibilityPosInSet: childaccessibilityPosInSet ?? context.accessibilityPosInSet, // win32 accessibilitySetSize: childAccessibilitySetSize ?? context.accessibilitySetSize, // win32 }, hasSubmenu: context.isSubmenu, diff --git a/packages/components/MenuButton/package.json b/packages/components/MenuButton/package.json index 640a5bc51b..0e69e827b8 100644 --- a/packages/components/MenuButton/package.json +++ b/packages/components/MenuButton/package.json @@ -50,16 +50,19 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/Notification/package.json b/packages/components/Notification/package.json index 2e59c0b51b..cbb49745bd 100644 --- a/packages/components/Notification/package.json +++ b/packages/components/Notification/package.json @@ -56,16 +56,19 @@ "@fluentui-react-native/scripts": "workspace:*", "@fluentui-react-native/test-tools": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/Notification/src/Notification.tsx b/packages/components/Notification/src/Notification.tsx index 5e72a34b81..8bd336f263 100644 --- a/packages/components/Notification/src/Notification.tsx +++ b/packages/components/Notification/src/Notification.tsx @@ -9,7 +9,7 @@ import type { UseSlots } from '@fluentui-react-native/framework'; import { compose, mergeProps, memoize } from '@fluentui-react-native/framework'; import { Icon, createIconProps } from '@fluentui-react-native/icon'; import type { InteractionEvent } from '@fluentui-react-native/interactive-hooks'; -import { type IPressableProps, Pressable } from '@fluentui-react-native/pressable'; +import { Pressable } from '@fluentui-react-native/pressable'; import { Body2, Body2Strong } from '@fluentui-react-native/text'; import { NotificationButton, createNotificationButtonProps } from './Notification.helper'; @@ -54,7 +54,7 @@ export const Notification = compose({ return (final: NotificationProps, ...children: React.ReactNode[]) => { const { variant, icon, title, action, onActionPress, ...rest } = mergeProps(userProps, final); - const mergedProps = mergeProps(rest, rootStyle); + const mergedProps = mergeProps(rest, rootStyle); const iconProps = createIconProps(icon); const notificationButtonProps = createNotificationButtonProps(userProps); diff --git a/packages/components/Persona/package.json b/packages/components/Persona/package.json index f823c2a53b..7634184e59 100644 --- a/packages/components/Persona/package.json +++ b/packages/components/Persona/package.json @@ -48,12 +48,15 @@ "@fluentui-react-native/framework-base": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/PersonaCoin/package.json b/packages/components/PersonaCoin/package.json index 040a244657..9eff723d60 100644 --- a/packages/components/PersonaCoin/package.json +++ b/packages/components/PersonaCoin/package.json @@ -49,12 +49,15 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/Pressable/package.json b/packages/components/Pressable/package.json index 1bffc8284b..ea8ab587ab 100644 --- a/packages/components/Pressable/package.json +++ b/packages/components/Pressable/package.json @@ -43,12 +43,15 @@ "@fluentui-react-native/eslint-config-rules": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/Pressable/src/Pressable.props.ts b/packages/components/Pressable/src/Pressable.props.ts index c822618fe3..7beb71ff1c 100644 --- a/packages/components/Pressable/src/Pressable.props.ts +++ b/packages/components/Pressable/src/Pressable.props.ts @@ -1,22 +1,22 @@ import type * as React from 'react'; -import type { ViewStyle, StyleProp } from 'react-native'; +import type { ViewStyle } from 'react-native'; -import type { IViewProps } from '@fluentui-react-native/adapters'; +import type { IViewProps, IViewStyle } from '@fluentui-react-native/adapters'; import type { IWithPressableOptions, IPressableState } from '@fluentui-react-native/interactive-hooks'; // eslint-disable-next-line @typescript-eslint/no-empty-object-type type ObjectBase = {}; -export type IPressableProps = IWithPressableOptions & { - children?: IRenderChild; +export type IPressableProps = IWithPressableOptions & { + children?: React.ReactNode; // Typescript will not allow an extension of the IView* interface // that allows style to take on a function value. This is not a problem // with children, presumably because function components are valid as children. // As such, a renderStyle prop that takes a function value is provided - // instead, in conjunction with the base style prop (StyleProp). + // instead, in conjunction with the base style prop (ViewStyle). // The style prop will only be used if a renderStyle is not provided. - renderStyle?: IRenderStyle; + renderStyle?: IRenderStyle; }; /** @@ -38,13 +38,13 @@ export type IRenderChild = IChildAsFunction | React.ReactNode; /** * An IRenderStyle describes style as a function that takes the current * state of the parent component. It is up to the parent to invoke the function - * and make proper use of the more typical StyleProp object that is returned + * and make proper use of the more typical ViewStyle object that is returned * This is convenient for when styles need to be calculated depending on interaction states. */ -export type IRenderStyle = (state: T) => StyleProp; +export type IRenderStyle = (state: T) => S; export type IPressableType = { - props: IPressableProps; + props: IPressableProps; slotProps: { root: TBase; }; diff --git a/packages/components/RadioGroup/package.json b/packages/components/RadioGroup/package.json index 4c76616d70..d7ec03c377 100644 --- a/packages/components/RadioGroup/package.json +++ b/packages/components/RadioGroup/package.json @@ -56,16 +56,19 @@ "@fluentui-react-native/scripts": "workspace:*", "@fluentui-react-native/test-tools": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/RadioGroup/src/Radio/__tests__/__snapshots__/RadioExperimental.test.tsx.snap b/packages/components/RadioGroup/src/Radio/__tests__/__snapshots__/RadioExperimental.test.tsx.snap index 2f359e4ac8..2fa97ebaf8 100644 --- a/packages/components/RadioGroup/src/Radio/__tests__/__snapshots__/RadioExperimental.test.tsx.snap +++ b/packages/components/RadioGroup/src/Radio/__tests__/__snapshots__/RadioExperimental.test.tsx.snap @@ -10,7 +10,7 @@ exports[`Radio component tests Radio default 1`] = ` ] } accessibilityLabel="Default Radio" - accessibilityPositionInSet={0} + accessibilityPosInSet={0} accessibilityRole="radio" accessibilitySetSize={0} accessibilityState={ @@ -174,7 +174,7 @@ exports[`Radio component tests Radio disabled 1`] = ` ] } accessibilityLabel="Disabled Radio" - accessibilityPositionInSet={0} + accessibilityPosInSet={0} accessibilityRole="radio" accessibilitySetSize={0} accessibilityState={ diff --git a/packages/components/RadioGroup/src/Radio/useRadio.ts b/packages/components/RadioGroup/src/Radio/useRadio.ts index d2bf91ed54..005b8b9421 100644 --- a/packages/components/RadioGroup/src/Radio/useRadio.ts +++ b/packages/components/RadioGroup/src/Radio/useRadio.ts @@ -26,7 +26,7 @@ export const useRadio = (props: RadioProps): RadioInfo => { accessibilityHint, accessibilityState, componentRef = defaultComponentRef, - accessibilityPositionInSet, + accessibilityPosInSet, accessibilitySetSize, enableFocusRing, ...rest @@ -101,7 +101,7 @@ export const useRadio = (props: RadioProps): RadioInfo => { accessibilityHint: accessibilityHint ?? subtext, accessibilityState: getAccessibilityState(state.disabled, state.selected, accessibilityState), accessibilityActions: accessibilityActionsProp, - accessibilityPositionInSet: accessibilityPositionInSet ?? radioGroupContext.values.findIndex((x) => x == value) + 1, + accessibilityPosInSet: accessibilityPosInSet ?? radioGroupContext.values.findIndex((x) => x == value) + 1, accessibilitySetSize: accessibilitySetSize ?? radioGroupContext.values.length, focusable: !state.disabled, disabled: isDisabled, diff --git a/packages/components/RadioGroup/src/Radio/useRadio.win32.ts b/packages/components/RadioGroup/src/Radio/useRadio.win32.ts index 0137e14022..35441aff92 100644 --- a/packages/components/RadioGroup/src/Radio/useRadio.win32.ts +++ b/packages/components/RadioGroup/src/Radio/useRadio.win32.ts @@ -34,7 +34,7 @@ export const useRadio = (props: RadioProps): RadioInfo => { accessibilityHint, accessibilityState, componentRef = defaultComponentRef, - accessibilityPositionInSet, + accessibilityPosInSet, accessibilitySetSize, ...rest } = props; @@ -168,7 +168,7 @@ export const useRadio = (props: RadioProps): RadioInfo => { accessibilityHint: accessibilityHint ?? subtext, accessibilityState: getAccessibilityState(state.disabled, state.selected, accessibilityState), accessibilityActions: accessibilityActionsProp, - accessibilityPositionInSet: accessibilityPositionInSet ?? radioGroupContext.values.findIndex((x) => x == value) + 1, + accessibilityPosInSet: accessibilityPosInSet ?? radioGroupContext.values.findIndex((x) => x == value) + 1, accessibilitySetSize: accessibilitySetSize ?? radioGroupContext.values.length, focusable: !state.disabled, disabled: isDisabled, diff --git a/packages/components/RadioGroup/src/RadioGroup/__tests__/RadioGroupExperimental.test.tsx b/packages/components/RadioGroup/src/RadioGroup/__tests__/RadioGroupExperimental.test.tsx index faa4035cf0..9c58bbd40c 100644 --- a/packages/components/RadioGroup/src/RadioGroup/__tests__/RadioGroupExperimental.test.tsx +++ b/packages/components/RadioGroup/src/RadioGroup/__tests__/RadioGroupExperimental.test.tsx @@ -23,8 +23,8 @@ describe('RadioGroup component tests', () => { const tree = renderer .create( - - + + , ) .toJSON(); @@ -36,8 +36,8 @@ describe('RadioGroup component tests', () => { const tree = renderer .create( - - + + , ) .toJSON(); @@ -49,8 +49,8 @@ describe('RadioGroup component tests', () => { const tree = renderer .create( - - + + , ) .toJSON(); @@ -62,8 +62,8 @@ describe('RadioGroup component tests', () => { const tree = renderer .create( - - + + , ) .toJSON(); @@ -75,8 +75,8 @@ describe('RadioGroup component tests', () => { const tree = renderer .create( - - + + , ) .toJSON(); diff --git a/packages/components/RadioGroup/src/RadioGroup/__tests__/__snapshots__/RadioGroupExperimental.test.tsx.snap b/packages/components/RadioGroup/src/RadioGroup/__tests__/__snapshots__/RadioGroupExperimental.test.tsx.snap index b404b1c93e..94b276b5ec 100644 --- a/packages/components/RadioGroup/src/RadioGroup/__tests__/__snapshots__/RadioGroupExperimental.test.tsx.snap +++ b/packages/components/RadioGroup/src/RadioGroup/__tests__/__snapshots__/RadioGroupExperimental.test.tsx.snap @@ -65,7 +65,7 @@ exports[`RadioGroup component tests Radio not direct child of radio group 1`] = ] } accessibilityLabel="Radio1" - accessibilityPositionInSet={1} + accessibilityPosInSet={1} accessibilityRole="radio" accessibilitySetSize={2} accessibilityState={ @@ -226,7 +226,7 @@ exports[`RadioGroup component tests Radio not direct child of radio group 1`] = ] } accessibilityLabel="Radio2" - accessibilityPositionInSet={2} + accessibilityPosInSet={2} accessibilityRole="radio" accessibilitySetSize={2} accessibilityState={ @@ -447,7 +447,7 @@ exports[`RadioGroup component tests RadioGroup default 1`] = ` ] } accessibilityLabel="RadioButton1" - accessibilityPositionInSet={0} + accessibilityPosInSet={0} accessibilityRole="radio" accessibilitySetSize={0} accessibilityState={ @@ -608,7 +608,7 @@ exports[`RadioGroup component tests RadioGroup default 1`] = ` ] } accessibilityLabel="RadioButton2" - accessibilityPositionInSet={0} + accessibilityPosInSet={0} accessibilityRole="radio" accessibilitySetSize={0} accessibilityState={ @@ -829,7 +829,7 @@ exports[`RadioGroup component tests RadioGroup disabled 1`] = ` ] } accessibilityLabel="Radio1" - accessibilityPositionInSet={1} + accessibilityPosInSet={1} accessibilityRole="radio" accessibilitySetSize={2} accessibilityState={ @@ -990,7 +990,7 @@ exports[`RadioGroup component tests RadioGroup disabled 1`] = ` ] } accessibilityLabel="Radio2" - accessibilityPositionInSet={2} + accessibilityPosInSet={2} accessibilityRole="radio" accessibilitySetSize={2} accessibilityState={ @@ -1212,7 +1212,7 @@ exports[`RadioGroup component tests RadioGroup horizontal 1`] = ` ] } accessibilityLabel="Radio1" - accessibilityPositionInSet={1} + accessibilityPosInSet={1} accessibilityRole="radio" accessibilitySetSize={2} accessibilityState={ @@ -1373,7 +1373,7 @@ exports[`RadioGroup component tests RadioGroup horizontal 1`] = ` ] } accessibilityLabel="Radio2" - accessibilityPositionInSet={2} + accessibilityPosInSet={2} accessibilityRole="radio" accessibilitySetSize={2} accessibilityState={ @@ -1595,7 +1595,7 @@ exports[`RadioGroup component tests RadioGroup horizontal-stacked 1`] = ` ] } accessibilityLabel="Radio1" - accessibilityPositionInSet={1} + accessibilityPosInSet={1} accessibilityRole="radio" accessibilitySetSize={2} accessibilityState={ @@ -1756,7 +1756,7 @@ exports[`RadioGroup component tests RadioGroup horizontal-stacked 1`] = ` ] } accessibilityLabel="Radio2" - accessibilityPositionInSet={2} + accessibilityPosInSet={2} accessibilityRole="radio" accessibilitySetSize={2} accessibilityState={ @@ -1993,7 +1993,7 @@ exports[`RadioGroup component tests RadioGroup required 1`] = ` ] } accessibilityLabel="Radio1" - accessibilityPositionInSet={1} + accessibilityPosInSet={1} accessibilityRole="radio" accessibilitySetSize={2} accessibilityState={ @@ -2154,7 +2154,7 @@ exports[`RadioGroup component tests RadioGroup required 1`] = ` ] } accessibilityLabel="Radio2" - accessibilityPositionInSet={2} + accessibilityPosInSet={2} accessibilityRole="radio" accessibilitySetSize={2} accessibilityState={ diff --git a/packages/components/RadioGroup/src/legacy/RadioButton.tsx b/packages/components/RadioGroup/src/legacy/RadioButton.tsx index c1e1da3364..ad771c53e2 100644 --- a/packages/components/RadioGroup/src/legacy/RadioButton.tsx +++ b/packages/components/RadioGroup/src/legacy/RadioButton.tsx @@ -29,7 +29,7 @@ export const RadioButton = compose({ accessibilityLabel, ariaLabel, componentRef = defaultComponentRef, - accessibilityPositionInSet, + accessibilityPosInSet, ariaPosInSet, accessibilitySetSize, ariaSetSize, @@ -98,7 +98,7 @@ export const RadioButton = compose({ accessibilityLabel: accessibilityLabel ?? ariaLabel ?? content, accessibilityState: { disabled: state.disabled, selected: state.selected }, accessibilityActions: [{ name: 'Select', label: radioButtonSelectActionLabel }], - accessibilityPositionInSet: accessibilityPositionInSet ?? ariaPosInSet ?? info.buttonKeys.findIndex((x) => x == buttonKey) + 1, + accessibilityPosInSet: accessibilityPosInSet ?? ariaPosInSet ?? info.buttonKeys.findIndex((x) => x == buttonKey) + 1, accessibilitySetSize: accessibilitySetSize ?? ariaSetSize ?? info.buttonKeys.length, focusable: !state.disabled, onAccessibilityAction: onAccessibilityAction, diff --git a/packages/components/RadioGroup/src/legacy/RadioButton.types.ts b/packages/components/RadioGroup/src/legacy/RadioButton.types.ts index 3fa0bac013..2129328699 100644 --- a/packages/components/RadioGroup/src/legacy/RadioButton.types.ts +++ b/packages/components/RadioGroup/src/legacy/RadioButton.types.ts @@ -5,8 +5,8 @@ import type { IFocusable } from '@fluentui-react-native/interactive-hooks'; import type { IPressableProps } from '@fluentui-react-native/pressable'; import type { ITextProps } from '@fluentui-react-native/text'; import type { FontTokens, IForegroundColorTokens, IBackgroundColorTokens, IBorderTokens } from '@fluentui-react-native/tokens'; -import type { IViewWin32Props } from '@office-iss/react-native-win32'; import type { IRenderData } from '@uifabricshared/foundation-composable'; +import type { IViewProps } from '@fluentui-react-native/adapters'; export const radioButtonName = 'RadioButton'; @@ -36,7 +36,7 @@ export interface IRadioButtonProps extends IPressableProps { * Defines the current radio button's position in the radio group for accessibility purposes. It's recommended to set this value * if radio buttons are not direct children of radio group. This value is auto-generated if radio buttons are direct children of * radio group. - * @deprecated Use accessibilityPositionInSet instead. + * @deprecated Use accessibilityPosInSet instead. */ ariaPosInSet?: number; @@ -59,7 +59,7 @@ export interface IRadioButtonTokens extends FontTokens, IForegroundColorTokens, } export interface IRadioButtonSlotProps { - root: React.PropsWithRef; + root: React.PropsWithRef; button: ViewProps; innerCircle: ViewProps; content: ITextProps; diff --git a/packages/components/RadioGroup/src/legacy/RadioButton.win32.tsx b/packages/components/RadioGroup/src/legacy/RadioButton.win32.tsx index e023d6ae1f..368f1150da 100644 --- a/packages/components/RadioGroup/src/legacy/RadioButton.win32.tsx +++ b/packages/components/RadioGroup/src/legacy/RadioButton.win32.tsx @@ -37,7 +37,7 @@ export const RadioButton = compose({ accessibilityLabel, ariaLabel, componentRef = defaultComponentRef, - accessibilityPositionInSet, + accessibilityPosInSet, ariaPosInSet, accessibilitySetSize, ariaSetSize, @@ -164,7 +164,7 @@ export const RadioButton = compose({ accessibilityLabel: accessibilityLabel ?? ariaLabel ?? content, accessibilityState: { disabled: state.disabled, selected: state.selected }, accessibilityActions: [{ name: 'Select', label: radioButtonSelectActionLabel }], - accessibilityPositionInSet: accessibilityPositionInSet ?? ariaPosInSet ?? info.buttonKeys.findIndex((x) => x == buttonKey) + 1, + accessibilityPosInSet: accessibilityPosInSet ?? ariaPosInSet ?? info.buttonKeys.findIndex((x) => x == buttonKey) + 1, accessibilitySetSize: accessibilitySetSize ?? ariaSetSize ?? info.buttonKeys.length, focusable: !state.disabled, onAccessibilityAction: onAccessibilityAction, diff --git a/packages/components/RadioGroup/src/legacy/__tests__/RadioButtonGroup.test.tsx b/packages/components/RadioGroup/src/legacy/__tests__/RadioButtonGroup.test.tsx index dd30dd81c2..f13d88b5be 100644 --- a/packages/components/RadioGroup/src/legacy/__tests__/RadioButtonGroup.test.tsx +++ b/packages/components/RadioGroup/src/legacy/__tests__/RadioButtonGroup.test.tsx @@ -20,8 +20,8 @@ describe('RadioButton component tests', () => { const tree = renderer.create( - - + + , ); diff --git a/packages/components/RadioGroup/src/legacy/__tests__/__snapshots__/RadioButton.test.tsx.snap b/packages/components/RadioGroup/src/legacy/__tests__/__snapshots__/RadioButton.test.tsx.snap index a4e9aef366..29917aaf2f 100644 --- a/packages/components/RadioGroup/src/legacy/__tests__/__snapshots__/RadioButton.test.tsx.snap +++ b/packages/components/RadioGroup/src/legacy/__tests__/__snapshots__/RadioButton.test.tsx.snap @@ -11,7 +11,7 @@ exports[`RadioButton component tests RadioButton default 1`] = ` ] } accessibilityLabel="Default Button" - accessibilityPositionInSet={0} + accessibilityPosInSet={0} accessibilityRole="radio" accessibilitySetSize={0} accessibilityState={ diff --git a/packages/components/RadioGroup/src/legacy/__tests__/__snapshots__/RadioButtonGroup.test.tsx.snap b/packages/components/RadioGroup/src/legacy/__tests__/__snapshots__/RadioButtonGroup.test.tsx.snap index e9df4db567..21112a731d 100644 --- a/packages/components/RadioGroup/src/legacy/__tests__/__snapshots__/RadioButtonGroup.test.tsx.snap +++ b/packages/components/RadioGroup/src/legacy/__tests__/__snapshots__/RadioButtonGroup.test.tsx.snap @@ -39,7 +39,7 @@ exports[`RadioButton component tests RadioButton default 1`] = ` ] } accessibilityLabel="RadioButton1" - accessibilityPositionInSet={0} + accessibilityPosInSet={0} accessibilityRole="radio" accessibilitySetSize={0} accessibilityState={ @@ -134,7 +134,7 @@ exports[`RadioButton component tests RadioButton default 1`] = ` ] } accessibilityLabel="RadioButton2" - accessibilityPositionInSet={0} + accessibilityPosInSet={0} accessibilityRole="radio" accessibilitySetSize={0} accessibilityState={ @@ -263,7 +263,7 @@ exports[`RadioButton component tests RadioButton not direct child of radio group ] } accessibilityLabel="RadioButton1" - accessibilityPositionInSet={1} + accessibilityPosInSet={1} accessibilityRole="radio" accessibilitySetSize={2} accessibilityState={ @@ -358,7 +358,7 @@ exports[`RadioButton component tests RadioButton not direct child of radio group ] } accessibilityLabel="RadioButton2" - accessibilityPositionInSet={2} + accessibilityPosInSet={2} accessibilityRole="radio" accessibilitySetSize={2} accessibilityState={ diff --git a/packages/components/Separator/package.json b/packages/components/Separator/package.json index da7fe646cf..9c3044958f 100644 --- a/packages/components/Separator/package.json +++ b/packages/components/Separator/package.json @@ -45,15 +45,18 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/Stack/package.json b/packages/components/Stack/package.json index b9802a3c61..294ae3b5ce 100644 --- a/packages/components/Stack/package.json +++ b/packages/components/Stack/package.json @@ -49,15 +49,18 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", "@fluentui-react-native/text": "workspace:*", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/Switch/SPEC.md b/packages/components/Switch/SPEC.md index e5ac00f29f..36c545be63 100644 --- a/packages/components/Switch/SPEC.md +++ b/packages/components/Switch/SPEC.md @@ -164,7 +164,7 @@ export interface SwitchTokens extends LayoutTokens, FontTokens, IBorderTokens, I /** * Thumb radius */ - thumbRadius?: number; + thumbRadius?: AnimatableNumericValue | string; /** * Thumb margin @@ -184,7 +184,7 @@ export interface SwitchTokens extends LayoutTokens, FontTokens, IBorderTokens, I /** * Border Radius of border when Switch is focused on */ - focusBorderRadius?: number; + focusBorderRadius?: AnimatableNumericValue | string; /** * Sets the position of the thumb diff --git a/packages/components/Switch/package.json b/packages/components/Switch/package.json index 19c5da0efa..648e22975e 100644 --- a/packages/components/Switch/package.json +++ b/packages/components/Switch/package.json @@ -50,15 +50,18 @@ "@fluentui-react-native/scripts": "workspace:*", "@fluentui-react-native/test-tools": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/Switch/src/Switch.types.ts b/packages/components/Switch/src/Switch.types.ts index 4f05ec0dbb..0c7e5cfede 100644 --- a/packages/components/Switch/src/Switch.types.ts +++ b/packages/components/Switch/src/Switch.types.ts @@ -1,7 +1,6 @@ import type * as React from 'react'; -import type { Animated, ViewStyle, ColorValue, PressableProps } from 'react-native'; +import type { Animated, ViewStyle, ColorValue, PressableProps, ViewProps, AnimatableNumericValue } from 'react-native'; -import type { IViewProps } from '@fluentui-react-native/adapters'; import type { IFocusable, InteractionEvent, PressablePropsExtended, PressableState } from '@fluentui-react-native/interactive-hooks'; import type { TextProps } from '@fluentui-react-native/text'; import type { FontTokens, IBorderTokens, IColorTokens, IShadowTokens, LayoutTokens } from '@fluentui-react-native/tokens'; @@ -58,7 +57,7 @@ export interface SwitchTokens extends LayoutTokens, FontTokens, IBorderTokens, I /** * Thumb radius */ - thumbRadius?: number; + thumbRadius?: AnimatableNumericValue | string; /** * Thumb margin @@ -78,7 +77,7 @@ export interface SwitchTokens extends LayoutTokens, FontTokens, IBorderTokens, I /** * Border Radius of border when Switch is focused on */ - focusBorderRadius?: number; + focusBorderRadius?: AnimatableNumericValue | string; /** * Sets the position of the thumb @@ -200,8 +199,8 @@ export interface SwitchSlotProps { label: TextProps; track: PropsOf; thumb: PropsOf; - toggleContainer: IViewProps; - onOffTextContainer: IViewProps; + toggleContainer: ViewProps; + onOffTextContainer: ViewProps; onOffText: TextProps; } diff --git a/packages/components/TabList/SPEC.md b/packages/components/TabList/SPEC.md index 4909b65afe..803c6c0233 100644 --- a/packages/components/TabList/SPEC.md +++ b/packages/components/TabList/SPEC.md @@ -342,7 +342,7 @@ export interface TabTokens extends FontTokens, IBorderTokens, IForegroundColorTo /** * Border radius of the indicator. */ - indicatorRadius?: number; + indicatorRadius?: AnimatableNumericValue | string; /** * Thickness of the indicator line. diff --git a/packages/components/TabList/package.json b/packages/components/TabList/package.json index 65102316c2..10020c5fe9 100644 --- a/packages/components/TabList/package.json +++ b/packages/components/TabList/package.json @@ -52,16 +52,19 @@ "@fluentui-react-native/scripts": "workspace:*", "@fluentui-react-native/test-tools": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/TabList/src/Tab/Tab.types.ts b/packages/components/TabList/src/Tab/Tab.types.ts index 12d7ed41d5..b4a7ed453d 100644 --- a/packages/components/TabList/src/Tab/Tab.types.ts +++ b/packages/components/TabList/src/Tab/Tab.types.ts @@ -1,5 +1,5 @@ import type * as React from 'react'; -import type { ViewStyle, ColorValue } from 'react-native'; +import type { ViewStyle, ColorValue, AnimatableNumericValue } from 'react-native'; import type { IViewProps } from '@fluentui-react-native/adapters'; import type { IconPropsV1 as IconProps } from '@fluentui-react-native/icon'; @@ -49,7 +49,7 @@ export interface TabTokens extends FontTokens, IBorderTokens, IForegroundColorTo /** * Border radius of the indicator. */ - indicatorRadius?: number; + indicatorRadius?: AnimatableNumericValue | string; /** * Thickness of the indicator line. diff --git a/packages/components/TabList/src/Tab/__tests__/__snapshots__/Tab.test.tsx.snap b/packages/components/TabList/src/Tab/__tests__/__snapshots__/Tab.test.tsx.snap index 6f8a593104..5f5f6523d1 100644 --- a/packages/components/TabList/src/Tab/__tests__/__snapshots__/Tab.test.tsx.snap +++ b/packages/components/TabList/src/Tab/__tests__/__snapshots__/Tab.test.tsx.snap @@ -10,7 +10,7 @@ exports[`Tab component tests Customized Tab 1`] = ` ] } accessibilityLabel="Tab 1" - accessibilityPositionInSet={0} + accessibilityPosInSet={0} accessibilityRole="tab" accessibilitySetSize={0} accessibilityState={ @@ -148,7 +148,7 @@ exports[`Tab component tests Tab default props 1`] = ` ] } accessibilityLabel="Tab 1" - accessibilityPositionInSet={0} + accessibilityPosInSet={0} accessibilityRole="tab" accessibilitySetSize={0} accessibilityState={ @@ -286,7 +286,7 @@ exports[`Tab component tests Tab disabled 1`] = ` ] } accessibilityLabel="Tab 1" - accessibilityPositionInSet={0} + accessibilityPosInSet={0} accessibilityRole="tab" accessibilitySetSize={0} accessibilityState={ @@ -424,7 +424,7 @@ exports[`Tab component tests Tab render icon + text 1`] = ` ] } accessibilityLabel="Tab 1" - accessibilityPositionInSet={0} + accessibilityPosInSet={0} accessibilityRole="tab" accessibilitySetSize={0} accessibilityState={ @@ -574,7 +574,7 @@ exports[`Tab component tests Tab render icon only 1`] = ` ] } accessibilityLabel="" - accessibilityPositionInSet={0} + accessibilityPosInSet={0} accessibilityRole="tab" accessibilitySetSize={0} accessibilityState={ diff --git a/packages/components/TabList/src/Tab/useTab.ts b/packages/components/TabList/src/Tab/useTab.ts index dcad8865a1..b1aa19309e 100644 --- a/packages/components/TabList/src/Tab/useTab.ts +++ b/packages/components/TabList/src/Tab/useTab.ts @@ -21,7 +21,7 @@ export const useTab = (props: TabProps): TabInfo => { const defaultComponentRef = React.useRef(null); const { accessibilityActions, - accessibilityPositionInSet, + accessibilityPosInSet, accessibilitySetSize, accessibilityState, accessible, @@ -97,7 +97,7 @@ export const useTab = (props: TabProps): TabInfo => { accessible: accessible ?? true, accessibilityRole: 'tab', accessibilityActions: accessibilityActionsProp, - accessibilityPositionInSet: accessibilityPositionInSet ?? tabKeys.findIndex((key) => key === tabKey) + 1, + accessibilityPosInSet: accessibilityPosInSet ?? tabKeys.findIndex((key) => key === tabKey) + 1, accessibilityState: getAccessibilityState(isDisabled, selectedKey === tabKey, accessibilityState), accessibilitySetSize: accessibilitySetSize ?? tabKeys.length, disabled: isDisabled, diff --git a/packages/components/TabList/src/Tab/useTab.win32.ts b/packages/components/TabList/src/Tab/useTab.win32.ts index 47a3fc69af..08d22b0d7e 100644 --- a/packages/components/TabList/src/Tab/useTab.win32.ts +++ b/packages/components/TabList/src/Tab/useTab.win32.ts @@ -21,7 +21,7 @@ export const useTab = (props: TabProps): TabInfo => { const defaultComponentRef = React.useRef(null); const { accessibilityActions, - accessibilityPositionInSet, + accessibilityPosInSet, accessibilitySetSize, accessibilityState, accessible, @@ -139,7 +139,7 @@ export const useTab = (props: TabProps): TabInfo => { accessible: accessible ?? true, accessibilityRole: 'tab', accessibilityActions: accessibilityActionsProp, - accessibilityPositionInSet: accessibilityPositionInSet ?? tabKeys.findIndex((key) => key === tabKey) + 1, + accessibilityPosInSet: accessibilityPosInSet ?? tabKeys.findIndex((key) => key === tabKey) + 1, accessibilityState: getAccessibilityState(isDisabled, selectedKey === tabKey, accessibilityState), accessibilitySetSize: accessibilitySetSize ?? tabKeys.length, disabled: isDisabled, diff --git a/packages/components/TabList/src/TabList/__tests__/__snapshots__/TabList.test.tsx.snap b/packages/components/TabList/src/TabList/__tests__/__snapshots__/TabList.test.tsx.snap index 95253f3a2c..5f84f67853 100644 --- a/packages/components/TabList/src/TabList/__tests__/__snapshots__/TabList.test.tsx.snap +++ b/packages/components/TabList/src/TabList/__tests__/__snapshots__/TabList.test.tsx.snap @@ -48,7 +48,7 @@ exports[`TabList component tests TabList appearance 1`] = ` ] } accessibilityLabel="Tab 1" - accessibilityPositionInSet={1} + accessibilityPosInSet={1} accessibilityRole="tab" accessibilitySetSize={3} accessibilityState={ @@ -183,7 +183,7 @@ exports[`TabList component tests TabList appearance 1`] = ` ] } accessibilityLabel="Tab 2" - accessibilityPositionInSet={2} + accessibilityPosInSet={2} accessibilityRole="tab" accessibilitySetSize={3} accessibilityState={ @@ -318,7 +318,7 @@ exports[`TabList component tests TabList appearance 1`] = ` ] } accessibilityLabel="Tab 3" - accessibilityPositionInSet={3} + accessibilityPosInSet={3} accessibilityRole="tab" accessibilitySetSize={3} accessibilityState={ @@ -497,7 +497,7 @@ exports[`TabList component tests TabList default props 1`] = ` ] } accessibilityLabel="Tab 1" - accessibilityPositionInSet={0} + accessibilityPosInSet={0} accessibilityRole="tab" accessibilitySetSize={0} accessibilityState={ @@ -632,7 +632,7 @@ exports[`TabList component tests TabList default props 1`] = ` ] } accessibilityLabel="Tab 2" - accessibilityPositionInSet={0} + accessibilityPosInSet={0} accessibilityRole="tab" accessibilitySetSize={0} accessibilityState={ @@ -767,7 +767,7 @@ exports[`TabList component tests TabList default props 1`] = ` ] } accessibilityLabel="Tab 3" - accessibilityPositionInSet={0} + accessibilityPosInSet={0} accessibilityRole="tab" accessibilitySetSize={0} accessibilityState={ @@ -946,7 +946,7 @@ exports[`TabList component tests TabList disabled list 1`] = ` ] } accessibilityLabel="Tab 1" - accessibilityPositionInSet={0} + accessibilityPosInSet={0} accessibilityRole="tab" accessibilitySetSize={0} accessibilityState={ @@ -1081,7 +1081,7 @@ exports[`TabList component tests TabList disabled list 1`] = ` ] } accessibilityLabel="Tab 2" - accessibilityPositionInSet={0} + accessibilityPosInSet={0} accessibilityRole="tab" accessibilitySetSize={0} accessibilityState={ @@ -1216,7 +1216,7 @@ exports[`TabList component tests TabList disabled list 1`] = ` ] } accessibilityLabel="Tab 3" - accessibilityPositionInSet={0} + accessibilityPosInSet={0} accessibilityRole="tab" accessibilitySetSize={0} accessibilityState={ @@ -1395,7 +1395,7 @@ exports[`TabList component tests TabList orientation 1`] = ` ] } accessibilityLabel="Tab 1" - accessibilityPositionInSet={1} + accessibilityPosInSet={1} accessibilityRole="tab" accessibilitySetSize={3} accessibilityState={ @@ -1529,7 +1529,7 @@ exports[`TabList component tests TabList orientation 1`] = ` ] } accessibilityLabel="Tab 2" - accessibilityPositionInSet={2} + accessibilityPosInSet={2} accessibilityRole="tab" accessibilitySetSize={3} accessibilityState={ @@ -1663,7 +1663,7 @@ exports[`TabList component tests TabList orientation 1`] = ` ] } accessibilityLabel="Tab 3" - accessibilityPositionInSet={3} + accessibilityPosInSet={3} accessibilityRole="tab" accessibilitySetSize={3} accessibilityState={ @@ -1842,7 +1842,7 @@ exports[`TabList component tests TabList selected key 1`] = ` ] } accessibilityLabel="Tab 1" - accessibilityPositionInSet={1} + accessibilityPosInSet={1} accessibilityRole="tab" accessibilitySetSize={3} accessibilityState={ @@ -1977,7 +1977,7 @@ exports[`TabList component tests TabList selected key 1`] = ` ] } accessibilityLabel="Tab 2" - accessibilityPositionInSet={2} + accessibilityPosInSet={2} accessibilityRole="tab" accessibilitySetSize={3} accessibilityState={ @@ -2112,7 +2112,7 @@ exports[`TabList component tests TabList selected key 1`] = ` ] } accessibilityLabel="Tab 3" - accessibilityPositionInSet={3} + accessibilityPosInSet={3} accessibilityRole="tab" accessibilitySetSize={3} accessibilityState={ @@ -2291,7 +2291,7 @@ exports[`TabList component tests TabList size 1`] = ` ] } accessibilityLabel="Tab 1" - accessibilityPositionInSet={0} + accessibilityPosInSet={0} accessibilityRole="tab" accessibilitySetSize={0} accessibilityState={ @@ -2426,7 +2426,7 @@ exports[`TabList component tests TabList size 1`] = ` ] } accessibilityLabel="Tab 2" - accessibilityPositionInSet={0} + accessibilityPosInSet={0} accessibilityRole="tab" accessibilitySetSize={0} accessibilityState={ @@ -2561,7 +2561,7 @@ exports[`TabList component tests TabList size 1`] = ` ] } accessibilityLabel="Tab 3" - accessibilityPositionInSet={0} + accessibilityPosInSet={0} accessibilityRole="tab" accessibilitySetSize={0} accessibilityState={ diff --git a/packages/components/TabList/src/TabList/useTabList.ts b/packages/components/TabList/src/TabList/useTabList.ts index 32fdca740f..f8c6d047e6 100644 --- a/packages/components/TabList/src/TabList/useTabList.ts +++ b/packages/components/TabList/src/TabList/useTabList.ts @@ -1,11 +1,11 @@ import * as React from 'react'; import { Platform } from 'react-native'; import type { View, AccessibilityState, LayoutRectangle } from 'react-native'; +import type { NativeKeyEvent } from '@fluentui-react-native/adapters'; import { memoize, mergeStyles } from '@fluentui-react-native/framework'; import type { LayoutEvent } from '@fluentui-react-native/interactive-hooks'; import { useSelectedKey } from '@fluentui-react-native/interactive-hooks'; -import type { IKeyboardEvent } from '@office-iss/react-native-win32'; import type { TabListInfo, TabListProps } from './TabList.types'; import type { AnimatedIndicatorStyles } from '../TabListAnimatedIndicator/TabListAnimatedIndicator.types'; @@ -164,7 +164,7 @@ export const useTabList = (props: TabListProps): TabListInfo => { // win32 only prop used to implemement CTRL + TAB shortcut native to windows tab components const onRootKeyDown = React.useCallback( - (e: IKeyboardEvent) => { + (e: NativeKeyEvent) => { if ((Platform.OS as string) === 'win32' && e.nativeEvent.key === 'Tab' && e.nativeEvent.ctrlKey) { incrementSelectedTab(e.nativeEvent.shiftKey); setInvoked(true); // on win32, set focus on the new tab without triggering narration twice diff --git a/packages/components/Text/package.json b/packages/components/Text/package.json index 387f33bdc4..3554668889 100644 --- a/packages/components/Text/package.json +++ b/packages/components/Text/package.json @@ -48,15 +48,18 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", "@fluentui-react-native/test-tools": "workspace:*", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/components/Text/src/Text.tsx b/packages/components/Text/src/Text.tsx index 02bd31f62a..fa9070b98c 100644 --- a/packages/components/Text/src/Text.tsx +++ b/packages/components/Text/src/Text.tsx @@ -1,6 +1,6 @@ /** @jsxImportSource @fluentui-react-native/framework-base */ import React from 'react'; -import { I18nManager, Platform, Text as RNText, type TextStyle } from 'react-native'; +import { I18nManager, Platform, Text as RNText } from 'react-native'; import type { UseTokens, FontWeightValue } from '@fluentui-react-native/framework'; import { fontStyles, useFluentTheme, mergeStyles, compressible, patchTokens } from '@fluentui-react-native/framework'; @@ -137,7 +137,7 @@ export const Text = compressible((props: TextProps, useTo ...maxFontSizeScaleAdjustment, onPress, numberOfLines: numberOfLines ?? (truncate || !wrap ? 1 : 0), - style: mergeStyles(tokenStyle, props.style, extra?.style), + style: mergeStyles(tokenStyle, props.style, extra?.style), }; // RN TextStyle doesn't recognize these properties. diff --git a/packages/configs/jest-config/package.json b/packages/configs/jest-config/package.json index 397ab3a4f9..aaf19a1ad9 100644 --- a/packages/configs/jest-config/package.json +++ b/packages/configs/jest-config/package.json @@ -37,7 +37,7 @@ "@fluentui-react-native/eslint-config-rules": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/babel-preset": "^0.74.0", + "@react-native/babel-preset": "^0.81.0", "@types/node": "catalog:", "babel-jest": "^29.0.0", "jest": "^29.2.1", diff --git a/packages/configs/kit-config/rnx-kit.config.cjs b/packages/configs/kit-config/rnx-kit.config.cjs index d75258333c..50f2fcb8e6 100644 --- a/packages/configs/kit-config/rnx-kit.config.cjs +++ b/packages/configs/kit-config/rnx-kit.config.cjs @@ -4,7 +4,7 @@ const config = { alignDeps: { presets: ['@fluentui-react-native/kit-config/furn-preset.ts'], requirements: { - development: ['react-native@0.74'], + development: ['react-native@0.81'], production: ['react-native@0.73 || 0.74 || 0.78 || 0.81'], }, }, diff --git a/packages/deprecated/foundation-composable/package.json b/packages/deprecated/foundation-composable/package.json index 66b9a4f11f..3c5949b1e3 100644 --- a/packages/deprecated/foundation-composable/package.json +++ b/packages/deprecated/foundation-composable/package.json @@ -42,9 +42,9 @@ "@fluentui-react-native/eslint-config-rules": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0" + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0" }, "peerDependencies": { "react": "18.2.0 || 19.0.0 || 19.1.0", diff --git a/packages/deprecated/foundation-compose/package.json b/packages/deprecated/foundation-compose/package.json index 3826a6b017..97e07a50ce 100644 --- a/packages/deprecated/foundation-compose/package.json +++ b/packages/deprecated/foundation-compose/package.json @@ -48,12 +48,12 @@ "@fluentui-react-native/eslint-config-rules": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@office-iss/react-native-win32": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0" + "@office-iss/react-native-win32": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", diff --git a/packages/deprecated/foundation-settings/package.json b/packages/deprecated/foundation-settings/package.json index d6f83931ed..38136992f1 100644 --- a/packages/deprecated/foundation-settings/package.json +++ b/packages/deprecated/foundation-settings/package.json @@ -44,9 +44,9 @@ "@fluentui-react-native/react-configs": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", "@types/jest": "^29.0.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0" + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0" }, "peerDependencies": { "react": "18.2.0 || 19.0.0 || 19.1.0" diff --git a/packages/deprecated/foundation-tokens/README.md b/packages/deprecated/foundation-tokens/README.md index bcbcfd218a..d74140fe3d 100644 --- a/packages/deprecated/foundation-tokens/README.md +++ b/packages/deprecated/foundation-tokens/README.md @@ -53,7 +53,7 @@ A general token interface directly represents styles that apply to most or all c export interface IBorderTokens { borderColor?: string; borderWidth?: number; - borderRadius?: number; + borderRadius?: AnimatableNumericValue | string; // ...other related border properties } diff --git a/packages/deprecated/foundation-tokens/package.json b/packages/deprecated/foundation-tokens/package.json index b22115aa84..f5959f3b54 100644 --- a/packages/deprecated/foundation-tokens/package.json +++ b/packages/deprecated/foundation-tokens/package.json @@ -46,15 +46,18 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/react-configs": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", + "@office-iss/react-native-win32": "^0.81.0", + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", "@types/jest": "^29.0.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0" + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", diff --git a/packages/deprecated/foundation-tokens/src/MockTokens.ts b/packages/deprecated/foundation-tokens/src/MockTokens.ts index 2b9521f360..a732ec5a0a 100644 --- a/packages/deprecated/foundation-tokens/src/MockTokens.ts +++ b/packages/deprecated/foundation-tokens/src/MockTokens.ts @@ -1,4 +1,4 @@ -import type { ColorValue } from 'react-native'; +import type { AnimatableNumericValue, ColorValue } from 'react-native'; import type { IMockTheme } from './MockTheme'; import type { IStyleFactoryOperation, ILookupThemePart } from './Token.types'; @@ -24,7 +24,7 @@ export interface IMockCaptionTextTokens { export interface IMockBorderTokens { borderWidth?: number; - borderRadius?: number; + borderRadius?: AnimatableNumericValue | string; borderColor?: ColorValue; } diff --git a/packages/deprecated/theme-registry/package.json b/packages/deprecated/theme-registry/package.json index 5208a7ab56..3d09d7e8e6 100644 --- a/packages/deprecated/theme-registry/package.json +++ b/packages/deprecated/theme-registry/package.json @@ -44,9 +44,9 @@ "@react-native/babel-preset": "^0.74.0", "@react-native/metro-config": "^0.74.0", "@types/jest": "^29.0.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0" + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0" }, "peerDependencies": { "react": "18.2.0 || 19.0.0 || 19.1.0" diff --git a/packages/deprecated/themed-settings/package.json b/packages/deprecated/themed-settings/package.json index e640d24bb4..02198afcfe 100644 --- a/packages/deprecated/themed-settings/package.json +++ b/packages/deprecated/themed-settings/package.json @@ -44,12 +44,12 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/react-configs": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/babel-preset": "^0.74.0", + "@react-native/babel-preset": "^0.81.0", "@types/jest": "^29.0.0", "@types/node": "catalog:", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0" + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0" }, "peerDependencies": { "react": "18.2.0 || 19.0.0 || 19.1.0" diff --git a/packages/deprecated/theming-ramp/package.json b/packages/deprecated/theming-ramp/package.json index 41194cca85..183a9a3e74 100644 --- a/packages/deprecated/theming-ramp/package.json +++ b/packages/deprecated/theming-ramp/package.json @@ -47,9 +47,9 @@ "@fluentui-react-native/scripts": "workspace:*", "@fluentui-react-native/test-tools": "workspace:*", "@types/jest": "^29.0.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0" + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0" }, "peerDependencies": { "react": "18.2.0 || 19.0.0 || 19.1.0" diff --git a/packages/deprecated/theming-react-native/package.json b/packages/deprecated/theming-react-native/package.json index e8b752da87..d3f21ec221 100644 --- a/packages/deprecated/theming-react-native/package.json +++ b/packages/deprecated/theming-react-native/package.json @@ -46,12 +46,15 @@ "@fluentui-react-native/eslint-config-rules": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/experimental/ActivityIndicator/package.json b/packages/experimental/ActivityIndicator/package.json index 6dcb81c864..ac8fc42326 100644 --- a/packages/experimental/ActivityIndicator/package.json +++ b/packages/experimental/ActivityIndicator/package.json @@ -41,14 +41,17 @@ "@fluentui-react-native/framework-base": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", - "react-native-windows": "^0.74.0" + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", + "react-native-windows": "^0.81.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/experimental/AppearanceAdditions/package.json b/packages/experimental/AppearanceAdditions/package.json index 0c66220cf3..f2ab887e36 100644 --- a/packages/experimental/AppearanceAdditions/package.json +++ b/packages/experimental/AppearanceAdditions/package.json @@ -43,13 +43,16 @@ "@fluentui-react-native/framework": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", "@types/use-subscription": "^1.0.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0" + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/experimental/Avatar/package.json b/packages/experimental/Avatar/package.json index cd7f51bb47..00551d8c49 100644 --- a/packages/experimental/Avatar/package.json +++ b/packages/experimental/Avatar/package.json @@ -42,14 +42,17 @@ "@fluentui-react-native/framework-base": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/experimental/Checkbox/package.json b/packages/experimental/Checkbox/package.json index 276af12164..fe7e877a89 100644 --- a/packages/experimental/Checkbox/package.json +++ b/packages/experimental/Checkbox/package.json @@ -43,14 +43,17 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", - "react-native-windows": "^0.74.0" + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", + "react-native-windows": "^0.81.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/experimental/Drawer/package.json b/packages/experimental/Drawer/package.json index 3a7fb35a23..18724954b3 100644 --- a/packages/experimental/Drawer/package.json +++ b/packages/experimental/Drawer/package.json @@ -45,15 +45,18 @@ "@fluentui-react-native/jest-config": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/experimental/Drawer/src/Drawer.types.ts b/packages/experimental/Drawer/src/Drawer.types.ts index 1437677c16..bafe95a7d6 100644 --- a/packages/experimental/Drawer/src/Drawer.types.ts +++ b/packages/experimental/Drawer/src/Drawer.types.ts @@ -1,4 +1,5 @@ import type { + AnimatableNumericValue, Animated, ColorValue, DimensionValue, @@ -46,7 +47,7 @@ export interface DrawerTokens { /** * The corner radius of the handle. * */ - handleCornerRadius?: number; + handleCornerRadius?: AnimatableNumericValue | string; /** * The top margin of the handle. @@ -86,7 +87,7 @@ export interface DrawerTokens { * The corner radius of the Drawer * @default 0 * */ - drawerCornerRadius?: number; + drawerCornerRadius?: AnimatableNumericValue | string; /** * The elevation of the Drawer @@ -132,7 +133,7 @@ export interface DrawerTokens { * @platform iOS * */ - shadowRadius?: number; + shadowRadius?: AnimatableNumericValue | string; /** * Positions/Behaviours of the Drawer, This is used to apply different tokens for different positions. diff --git a/packages/experimental/Dropdown/package.json b/packages/experimental/Dropdown/package.json index fcf362588c..6f91d4eb30 100644 --- a/packages/experimental/Dropdown/package.json +++ b/packages/experimental/Dropdown/package.json @@ -48,14 +48,17 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", "@fluentui-react-native/test-tools": "workspace:*", + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", - "react-native-windows": "^0.74.0" + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", + "react-native-windows": "^0.81.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/experimental/Expander/package.json b/packages/experimental/Expander/package.json index 2b8b743329..34b9cd7222 100644 --- a/packages/experimental/Expander/package.json +++ b/packages/experimental/Expander/package.json @@ -44,12 +44,15 @@ "@fluentui-react-native/framework-base": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/experimental/MenuButton/package.json b/packages/experimental/MenuButton/package.json index fb5ade8ff7..24d43da0fd 100644 --- a/packages/experimental/MenuButton/package.json +++ b/packages/experimental/MenuButton/package.json @@ -46,16 +46,19 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/experimental/NativeDatePicker/package.json b/packages/experimental/NativeDatePicker/package.json index 4c16db9552..b4322f2b8a 100644 --- a/packages/experimental/NativeDatePicker/package.json +++ b/packages/experimental/NativeDatePicker/package.json @@ -38,10 +38,13 @@ "@fluentui-react-native/eslint-config-rules": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0" }, "peerDependencies": { "react": "18.2.0 || 19.0.0 || 19.1.0", diff --git a/packages/experimental/NativeFontMetrics/package.json b/packages/experimental/NativeFontMetrics/package.json index 7ea80ab852..52faf37c5b 100644 --- a/packages/experimental/NativeFontMetrics/package.json +++ b/packages/experimental/NativeFontMetrics/package.json @@ -41,11 +41,14 @@ "@fluentui-react-native/eslint-config-rules": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", "@types/use-subscription": "^1.0.0", - "react": "18.2.0", - "react-native": "^0.74.0" + "react": "19.1.0", + "react-native": "^0.81.0" }, "peerDependencies": { "react": "18.2.0 || 19.0.0 || 19.1.0", diff --git a/packages/experimental/Overflow/package.json b/packages/experimental/Overflow/package.json index 50c39ff5bb..a9b3e13417 100644 --- a/packages/experimental/Overflow/package.json +++ b/packages/experimental/Overflow/package.json @@ -46,15 +46,15 @@ "@fluentui-react-native/scripts": "workspace:*", "@fluentui-react-native/test-tools": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native/babel-preset": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/experimental/Popover/package.json b/packages/experimental/Popover/package.json index d2e2bd5f74..33deb02c2a 100644 --- a/packages/experimental/Popover/package.json +++ b/packages/experimental/Popover/package.json @@ -42,12 +42,15 @@ "@fluentui-react-native/framework-base": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/experimental/Shadow/package.json b/packages/experimental/Shadow/package.json index 665e8b1b47..1262a08abe 100644 --- a/packages/experimental/Shadow/package.json +++ b/packages/experimental/Shadow/package.json @@ -45,15 +45,18 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", "@fluentui-react-native/test-tools": "workspace:*", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/experimental/Shimmer/SPEC.md b/packages/experimental/Shimmer/SPEC.md index 2f58da54cd..a85187b9ee 100644 --- a/packages/experimental/Shimmer/SPEC.md +++ b/packages/experimental/Shimmer/SPEC.md @@ -109,7 +109,7 @@ export interface ShimmerCircleElement { * Radius of the circle element. * @defaultValue 12 */ - radius?: number; + radius?: AnimatableNumericValue | string; /** * Note: cx and cy should be optional properties [or removed], with relative positioning being the default [or only] positioning mechanism. diff --git a/packages/experimental/Shimmer/package.json b/packages/experimental/Shimmer/package.json index 0567b30870..b81943bc0b 100644 --- a/packages/experimental/Shimmer/package.json +++ b/packages/experimental/Shimmer/package.json @@ -46,16 +46,19 @@ "@fluentui-react-native/jest-config": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/experimental/Spinner/package.json b/packages/experimental/Spinner/package.json index 63dcacccfc..d40a9dd276 100644 --- a/packages/experimental/Spinner/package.json +++ b/packages/experimental/Spinner/package.json @@ -44,14 +44,17 @@ "@fluentui-react-native/framework-base": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", - "react-native-windows": "^0.74.0" + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", + "react-native-windows": "^0.81.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/experimental/Stack/package.json b/packages/experimental/Stack/package.json index 6d0105be29..2cc3a96558 100644 --- a/packages/experimental/Stack/package.json +++ b/packages/experimental/Stack/package.json @@ -45,14 +45,17 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", "@fluentui-react-native/text": "workspace:*", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0", + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0", "tslib": "^2.3.1" }, "peerDependencies": { diff --git a/packages/experimental/Tooltip/package.json b/packages/experimental/Tooltip/package.json index ba23db59e4..d32bb42f16 100644 --- a/packages/experimental/Tooltip/package.json +++ b/packages/experimental/Tooltip/package.json @@ -45,15 +45,15 @@ "@fluentui-react-native/scripts": "workspace:*", "@fluentui-react-native/test-tools": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native/babel-preset": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/experimental/VibrancyView/package.json b/packages/experimental/VibrancyView/package.json index 7e8e3c909f..2555e04c42 100644 --- a/packages/experimental/VibrancyView/package.json +++ b/packages/experimental/VibrancyView/package.json @@ -41,13 +41,16 @@ "@fluentui-react-native/eslint-config-rules": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@office-iss/react-native-win32": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0" + "@office-iss/react-native-win32": "^0.81.0", + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", diff --git a/packages/framework-base/package.json b/packages/framework-base/package.json index 1a84b8ede5..cead0402a0 100644 --- a/packages/framework-base/package.json +++ b/packages/framework-base/package.json @@ -47,8 +47,8 @@ "@fluentui-react-native/scripts": "workspace:*", "@types/jest": "^29.0.0", "@types/node": "catalog:", - "@types/react": "~18.2.0", - "react": "18.2.0" + "@types/react": "~19.1.0", + "react": "19.1.0" }, "peerDependencies": { "react": "18.2.0 || 19.0.0 || 19.1.0" diff --git a/packages/framework-base/src/merge-props/mergeStyles.ts b/packages/framework-base/src/merge-props/mergeStyles.ts index 8001efd8ce..03e05b87eb 100644 --- a/packages/framework-base/src/merge-props/mergeStyles.ts +++ b/packages/framework-base/src/merge-props/mergeStyles.ts @@ -18,26 +18,71 @@ export function flattenStyle(style: StyleProp): T { * * @param styles - array of styles to merge together. The styles will be flattened as part of the process */ -export function mergeAndFlattenStyles(...styles: StyleProp[]): T | undefined { + +// Overload for 2 arguments with potentially different types +export function mergeAndFlattenStyles( + style1: StyleProp, + style2: StyleProp, +): (T1 & T2) | undefined; + +// Overload for 3 arguments with potentially different types +export function mergeAndFlattenStyles( + style1: StyleProp, + style2: StyleProp, + style3: StyleProp, +): (T1 & T2 & T3) | undefined; + +// General fallback for any number of arguments of the same type +export function mergeAndFlattenStyles(...styles: StyleProp[]): TStyle | undefined; + +// Implementation +export function mergeAndFlattenStyles(...styles: StyleProp[]): object | undefined { // baseline merge and flatten the objects return immutableMerge( ...styles.map((styleProp: StyleProp) => { return flattenStyle(styleProp); }), - ) as T; + ); } const _styleCache = getMemoCache(); /** - * Function overloads to allow merging of styles of different types + * Function overloads to allow merging styles of different types. + * This is useful when merging token-based styles with React Native StyleProp types. */ -export function mergeStyles(...styles: StyleProp[]): T | undefined { + +// Overload for 1 argument, forces flattening of sub arrays +export function mergeStyles(style1: StyleProp): T1 | undefined; + +// Overload for 2 arguments with potentially different types +export function mergeStyles(style1: StyleProp, style2: StyleProp): (T1 & T2) | undefined; + +// Overload for 3 arguments with potentially different types +export function mergeStyles( + style1: StyleProp, + style2: StyleProp, + style3: StyleProp, +): (T1 & T2 & T3) | undefined; + +// Overload for 4 arguments with potentially different types +export function mergeStyles( + style1: StyleProp, + style2: StyleProp, + style3: StyleProp, + style4: StyleProp, +): (T1 & T2 & T3 & T4) | undefined; + +// General fallback for any number of arguments of the same type +export function mergeStyles(...styles: StyleProp[]): TStyle | undefined; + +// Implementation +export function mergeStyles(...styles: StyleProp[]): object | undefined { // filter the style set to just objects (which might be arrays or plain style objects) const inputs = styles.filter((s) => typeof s === 'object') as object[]; // now memo the results if there is more than one element or if the one element is an array return inputs.length > 1 || (inputs.length === 1 && Array.isArray(inputs[0])) - ? _styleCache(() => mergeAndFlattenStyles(undefined, ...inputs), inputs)[0] - : ((inputs[0] || {}) as T); + ? _styleCache(() => mergeAndFlattenStyles(undefined, ...inputs), inputs)[0] + : inputs[0] || {}; } diff --git a/packages/framework-base/src/merge-props/mergeStyles.types.ts b/packages/framework-base/src/merge-props/mergeStyles.types.ts index 8ade77717e..5a2e3b3856 100644 --- a/packages/framework-base/src/merge-props/mergeStyles.types.ts +++ b/packages/framework-base/src/merge-props/mergeStyles.types.ts @@ -1,8 +1,8 @@ /** * This is a copy of the react-native style prop type, copied here to avoid RN dependencies for web clients */ -type Falsy = undefined | null | false; -type RecursiveArray = (T | RecursiveArray)[]; +type Falsy = undefined | null | false | '' | 0; +type RecursiveArray = readonly (T | RecursiveArray)[] | (T | RecursiveArray)[]; /** Keep a brand of 'T' so that calls to `StyleSheet.flatten` can take `RegisteredStyle` and return `T`. */ type RegisteredStyle = number & { __registeredStyleBrand: T }; diff --git a/packages/framework/composition/package.json b/packages/framework/composition/package.json index 5fc6cc926b..b21b088a29 100644 --- a/packages/framework/composition/package.json +++ b/packages/framework/composition/package.json @@ -46,12 +46,12 @@ "@fluentui-react-native/jest-config": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/babel-preset": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native/babel-preset": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "react": "18.2.0 || 19.0.0 || 19.1.0" diff --git a/packages/framework/framework/package.json b/packages/framework/framework/package.json index eb1f011ddb..b5e5a1bd5f 100644 --- a/packages/framework/framework/package.json +++ b/packages/framework/framework/package.json @@ -51,16 +51,19 @@ "@fluentui-react-native/jest-config": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", "@rnx-kit/cli": "catalog:", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/framework/immutable-merge/package.json b/packages/framework/immutable-merge/package.json index 594ae7de72..8a34120f5d 100644 --- a/packages/framework/immutable-merge/package.json +++ b/packages/framework/immutable-merge/package.json @@ -38,8 +38,8 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", "@types/node": "catalog:", - "@types/react": "~18.2.0", - "react": "18.2.0" + "@types/react": "~19.1.0", + "react": "19.1.0" }, "peerDependencies": { "react": "18.2.0 || 19.0.0 || 19.1.0" diff --git a/packages/framework/memo-cache/package.json b/packages/framework/memo-cache/package.json index 0ed6cec4c8..852b291eaf 100644 --- a/packages/framework/memo-cache/package.json +++ b/packages/framework/memo-cache/package.json @@ -38,8 +38,8 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", "@types/node": "catalog:", - "@types/react": "~18.2.0", - "react": "18.2.0", + "@types/react": "~19.1.0", + "react": "19.1.0", "tslib": "^2.3.1" }, "peerDependencies": { diff --git a/packages/framework/merge-props/package.json b/packages/framework/merge-props/package.json index efdaa0f194..beab82b548 100644 --- a/packages/framework/merge-props/package.json +++ b/packages/framework/merge-props/package.json @@ -37,8 +37,8 @@ "@fluentui-react-native/eslint-config-rules": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@types/react": "~18.2.0", - "react": "18.2.0" + "@types/react": "~19.1.0", + "react": "19.1.0" }, "peerDependencies": { "react": "18.2.0 || 19.0.0 || 19.1.0" diff --git a/packages/framework/theme/package.json b/packages/framework/theme/package.json index 6f88d59722..8a28b55dc7 100644 --- a/packages/framework/theme/package.json +++ b/packages/framework/theme/package.json @@ -46,11 +46,14 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", "@fluentui-react-native/test-tools": "workspace:*", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0" }, "peerDependencies": { "react": "18.2.0 || 19.0.0 || 19.1.0", diff --git a/packages/framework/themed-stylesheet/package.json b/packages/framework/themed-stylesheet/package.json index d9be960c13..6033cd041e 100644 --- a/packages/framework/themed-stylesheet/package.json +++ b/packages/framework/themed-stylesheet/package.json @@ -44,11 +44,14 @@ "@fluentui-react-native/jest-config": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0" }, "peerDependencies": { "react": "18.2.0 || 19.0.0 || 19.1.0", diff --git a/packages/framework/use-slot/package.json b/packages/framework/use-slot/package.json index c931d9900e..62454e01ac 100644 --- a/packages/framework/use-slot/package.json +++ b/packages/framework/use-slot/package.json @@ -44,14 +44,17 @@ "@fluentui-react-native/jest-config": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", "@types/jest": "^29.0.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-test-renderer": "18.2.0" + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "react": "18.2.0 || 19.0.0 || 19.1.0" diff --git a/packages/framework/use-slots/package.json b/packages/framework/use-slots/package.json index ddd45ddaab..fc7b975a81 100644 --- a/packages/framework/use-slots/package.json +++ b/packages/framework/use-slots/package.json @@ -45,13 +45,16 @@ "@fluentui-react-native/jest-config": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-test-renderer": "18.2.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "react": "18.2.0 || 19.0.0 || 19.1.0" diff --git a/packages/framework/use-styling/README.md b/packages/framework/use-styling/README.md index 7aab73dce0..62d37b26ad 100644 --- a/packages/framework/use-styling/README.md +++ b/packages/framework/use-styling/README.md @@ -105,7 +105,7 @@ A token is simply a setting that informs the styling of the component. These can interface Tokens { backgroundColor?: ColorValue; borderWidth?: number; - borderRadius?: number; + borderRadius?: AnimatableNumericValue | string; } /** Build the styling hook */ diff --git a/packages/framework/use-styling/package.json b/packages/framework/use-styling/package.json index b64df9f882..e09837c39e 100644 --- a/packages/framework/use-styling/package.json +++ b/packages/framework/use-styling/package.json @@ -45,14 +45,17 @@ "@fluentui-react-native/jest-config": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", "@types/jest": "^29.0.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-test-renderer": "18.2.0" + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "react": "18.2.0 || 19.0.0 || 19.1.0" diff --git a/packages/framework/use-tokens/package.json b/packages/framework/use-tokens/package.json index bd56c3e0a3..77a597c3a7 100644 --- a/packages/framework/use-tokens/package.json +++ b/packages/framework/use-tokens/package.json @@ -44,14 +44,17 @@ "@fluentui-react-native/jest-config": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", "@types/jest": "^29.0.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-test-renderer": "18.2.0" + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "react": "18.2.0 || 19.0.0 || 19.1.0" diff --git a/packages/framework/use-tokens/src/useTokens.samples.test.tsx b/packages/framework/use-tokens/src/useTokens.samples.test.tsx index ff42009b65..6816ba4dde 100644 --- a/packages/framework/use-tokens/src/useTokens.samples.test.tsx +++ b/packages/framework/use-tokens/src/useTokens.samples.test.tsx @@ -1,5 +1,5 @@ import * as React from 'react'; -import type { TextProps, TextStyle } from 'react-native'; +import type { TextProps } from 'react-native'; import { Text, View } from 'react-native'; import { immutableMerge } from '@fluentui-react-native/framework-base'; @@ -96,7 +96,7 @@ describe('useTokens samples', () => { const [tokens, cache] = useTokensSample1(theme); // build up the text style, or the full props as appropriate - const styleFromTokens = cache( + const [styleFromTokens] = cache( /** * first build the style object * - this executes once for every unique set of keys. @@ -115,7 +115,7 @@ describe('useTokens samples', () => { // merge the props from the tokens with anything passed in via style. This is internally cached via object identity // so the merged style object won't change identity unless one of the two inputs changes identity. - const mergedStyle = mergeStyles(styleFromTokens, style); + const mergedStyle = mergeStyles(styleFromTokens, style); // now just render the element, forwarding the props, setting the merged style, then passing the children as appropriate return ( @@ -176,7 +176,7 @@ describe('useTokens samples', () => { // now just render, this time merging styles inline to make it a bit shorter return ( - (styleFromTokens, style)}> + {children} ); diff --git a/packages/libraries/core/package.json b/packages/libraries/core/package.json index 233f5fc973..ec91f2e57b 100644 --- a/packages/libraries/core/package.json +++ b/packages/libraries/core/package.json @@ -57,15 +57,18 @@ "@fluentui-react-native/eslint-config-rules": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", + "@react-native/metro-config": "^0.81.0", "@rnx-kit/cli": "catalog:", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-svg": ">=15.4.0 <15.13.0", - "react-native-windows": "^0.74.0" + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-svg": "^15.12.1", + "react-native-windows": "^0.81.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/libraries/core/src/index.ts b/packages/libraries/core/src/index.ts index 94f91401db..b5bbf47245 100644 --- a/packages/libraries/core/src/index.ts +++ b/packages/libraries/core/src/index.ts @@ -284,7 +284,6 @@ export type { IWithPressableOptions, KeyPressEvent, KeyCallback, - Layout, LayoutEvent, MeasureInWindowOnSuccessCallback, MeasureLayoutOnSuccessCallback, @@ -308,7 +307,6 @@ export type { ResponderSyntheticEvent, ScrollEvent, SyntheticEvent, - TextLayout, TextLayoutEvent, onKeySelectCallback, } from '@fluentui-react-native/interactive-hooks'; diff --git a/packages/theming/android-theme/package.json b/packages/theming/android-theme/package.json index 61b20a25c4..744dfc70ab 100644 --- a/packages/theming/android-theme/package.json +++ b/packages/theming/android-theme/package.json @@ -48,13 +48,16 @@ "@fluentui-react-native/jest-config": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/theming/apple-theme/package.json b/packages/theming/apple-theme/package.json index 6e96715912..f273a3683e 100644 --- a/packages/theming/apple-theme/package.json +++ b/packages/theming/apple-theme/package.json @@ -53,13 +53,16 @@ "@fluentui-react-native/jest-config": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/theming/default-theme/package.json b/packages/theming/default-theme/package.json index 15e851ab4c..f65e5873af 100644 --- a/packages/theming/default-theme/package.json +++ b/packages/theming/default-theme/package.json @@ -50,13 +50,16 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/theming/theme-tokens/package.json b/packages/theming/theme-tokens/package.json index ed34fdb850..69d5fecae1 100644 --- a/packages/theming/theme-tokens/package.json +++ b/packages/theming/theme-tokens/package.json @@ -48,10 +48,13 @@ "@fluentui-react-native/eslint-config-rules": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0" }, "peerDependencies": { "react": "18.2.0 || 19.0.0 || 19.1.0", diff --git a/packages/theming/theme-types/package.json b/packages/theming/theme-types/package.json index 6b389f1e30..4eb7e35b20 100644 --- a/packages/theming/theme-types/package.json +++ b/packages/theming/theme-types/package.json @@ -40,10 +40,13 @@ "@fluentui-react-native/eslint-config-rules": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0" }, "peerDependencies": { "react": "18.2.0 || 19.0.0 || 19.1.0", diff --git a/packages/theming/theming-utils/package.json b/packages/theming/theming-utils/package.json index cd2a397ad0..3716bfddfa 100644 --- a/packages/theming/theming-utils/package.json +++ b/packages/theming/theming-utils/package.json @@ -44,13 +44,16 @@ "@fluentui-react-native/jest-config": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/theming/win32-theme/package.json b/packages/theming/win32-theme/package.json index 015a3de5d4..022af11270 100644 --- a/packages/theming/win32-theme/package.json +++ b/packages/theming/win32-theme/package.json @@ -51,13 +51,16 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/utils/adapters/jest.config.js b/packages/utils/adapters/jest.config.js deleted file mode 100644 index 2029e9d4b2..0000000000 --- a/packages/utils/adapters/jest.config.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('@fluentui-react-native/react-configs/jest.config.js'); diff --git a/packages/utils/adapters/package.json b/packages/utils/adapters/package.json index e202f4c49f..52f1a6fca6 100644 --- a/packages/utils/adapters/package.json +++ b/packages/utils/adapters/package.json @@ -37,14 +37,17 @@ "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/react-configs": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@office-iss/react-native-win32": "^0.74.0", - "@react-native/metro-config": "^0.74.0", + "@office-iss/react-native-win32": "^0.81.0", + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/metro-config": "^0.81.0", "@types/jest": "^29.0.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0" + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0", @@ -74,8 +77,7 @@ "core-macos", "core-win32", "core-windows", - "tools-core", - "tools-jest-react" + "tools-core" ] }, "extends": "@fluentui-react-native/kit-config" diff --git a/packages/utils/adapters/src/__tests__/android.test.ts b/packages/utils/adapters/src/__tests__/android.test.ts deleted file mode 100644 index 7913f33a56..0000000000 --- a/packages/utils/adapters/src/__tests__/android.test.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { filterViewProps, filterTextProps, filterImageProps } from '../adapters.android'; - -describe('iOS filter tests', () => { - test('filterTextProps works', () => { - expect(filterTextProps('foo')).toBeFalsy(); - expect(filterTextProps('children')).toBeTruthy(); - expect(filterTextProps('style')).toBeTruthy(); - expect(filterTextProps('accessible')).toBeTruthy(); - expect(filterTextProps('selectable')).toBeTruthy(); - }); - - test('filterViewProps works', () => { - expect(filterViewProps('foo')).toBeFalsy(); - expect(filterViewProps('children')).toBeTruthy(); - expect(filterViewProps('style')).toBeTruthy(); - expect(filterViewProps('accessible')).toBeTruthy(); - expect(filterViewProps('animationClass')).toBeFalsy(); - expect(filterViewProps('shouldRasterizeIOS')).toBeFalsy(); - expect(filterViewProps('renderToHardwareTextureAndroid')).toBeTruthy(); - }); - - test('filterImageProps works', () => { - expect(filterImageProps('foo')).toBeFalsy(); - expect(filterImageProps('children')).toBeTruthy(); - expect(filterImageProps('style')).toBeTruthy(); - expect(filterImageProps('accessible')).toBeTruthy(); - }); -}); diff --git a/packages/utils/adapters/src/__tests__/base.test.ts b/packages/utils/adapters/src/__tests__/base.test.ts deleted file mode 100644 index 1d2efb17fb..0000000000 --- a/packages/utils/adapters/src/__tests__/base.test.ts +++ /dev/null @@ -1,139 +0,0 @@ -import type { - TextProps as Win32PlatformTextProps, - ViewProps as Win32PlatformViewProps, - ImageProps as Win32PlatformImageProps, -} from '@office-iss/react-native-win32'; -import type { - TextProps as MacOSPlatformTextProps, - ViewProps as MacOSPlatformViewProps, - ImageProps as MacOSPlatformImageProps, -} from 'react-native-macos'; -import type { - TextProps as WindowsPlatformTextProps, - ViewProps as WindowsPlatformViewProps, - ImageProps as WindowsPlatformImageProps, -} from 'react-native-windows'; - -import type { IAdapterMacOSViewProps, IAdapterMacOSTextProps, IAdapterMacOSImageProps } from '../adapter.types.macos'; -import type { IAdapterWin32ViewProps, IAdapterWin32TextProps, IAdapterWin32ImageProps } from '../adapter.types.win32'; -import type { IAdapterWindowsViewProps, IAdapterWindowsTextProps, IAdapterWindowsImageProps } from '../adapter.types.windows'; -import { filterViewProps, filterTextProps, filterImageProps } from '../adapters'; - -describe('Base filter tests', () => { - test('filterTextProps works', () => { - expect(filterTextProps('foo')).toBeFalsy(); - expect(filterTextProps('children')).toBeTruthy(); - expect(filterTextProps('style')).toBeTruthy(); - expect(filterTextProps('accessible')).toBeTruthy(); - }); - - test('filterViewProps works', () => { - expect(filterViewProps('foo')).toBeFalsy(); - expect(filterViewProps('children')).toBeTruthy(); - expect(filterViewProps('style')).toBeTruthy(); - expect(filterViewProps('accessible')).toBeTruthy(); - expect(filterViewProps('animationClass')).toBeTruthy(); - }); - - test('filterImageProps works', () => { - expect(filterImageProps('foo')).toBeFalsy(); - expect(filterImageProps('children')).toBeTruthy(); - expect(filterImageProps('style')).toBeTruthy(); - expect(filterImageProps('accessible')).toBeTruthy(); - }); - - test('verify win32 types', () => { - const win32AdapterViewProps = {} as Required; - // This assignment will fail if we are missing properties on IAdapterWin32ViewProps which are defined by Win32PlatformViewProps - const win32PlatformViewProps: Required = win32AdapterViewProps; - expect(Object.keys(win32PlatformViewProps).length).toBe(0); - - // This assignment will fail if there are any extra properties on IAdapterWin32ViewProps which are not defined by Win32PlatformViewProps - const emptyWin32ViewProps: Omit, keyof Win32PlatformViewProps> = {}; - expect(Object.keys(emptyWin32ViewProps).length).toBe(0); - - const win32AdapterTextProps = {} as Required; - // This assignment will fail if we are missing properties on IAdapterWin32TextProps which are defined by Win32PlatformTextProps - const win32PlatformTextProps: Required = win32AdapterTextProps; - expect(Object.keys(win32PlatformTextProps).length).toBe(0); - - // This assignment will fail if there are any extra properties on IAdapterWin32TextProps which are not defined by Win32PlatformTextProps - const emptyWin32TextProps: Omit, keyof Win32PlatformTextProps> = {}; - expect(Object.keys(emptyWin32TextProps).length).toBe(0); - - const win32AdapterImageProps = {} as Required; - // This assignment will fail if we are missing properties on IAdapterWin32ImageProps which are defined by Win32PlatformImageProps - const win32PlatformImageProps: Required = win32AdapterImageProps; - expect(Object.keys(win32PlatformImageProps).length).toBe(0); - - // This assignment will fail if there are any extra properties on IAdapterWin32ImageProps which are not defined by Win32PlatformImageProps - const emptyWin32ImageProps: Omit, keyof Win32PlatformImageProps> = {}; - expect(Object.keys(emptyWin32ImageProps).length).toBe(0); - }); - - // EventPhase enum mismatch - https://github.com/microsoft/react-native-windows/pull/12909 should fix - type windowsEventPhaseInvalidProperties = 'onKeyDown' | 'onKeyDownCapture' | 'onKeyUp' | 'onKeyUpCapture'; - - // Need to unify win32/windows key*Events - type windowsHandledKeyInvalidProperties = 'keyDownEvents' | 'keyUpEvents'; - - test('verify windows types', () => { - const windowsAdapterViewProps = {} as Required; - // This assignment will fail if we are missing properties on IAdapterWindowsViewProps which are defined by WindowsPlatformViewProps - const windowsPlatformViewProps: Required< - Omit - > = windowsAdapterViewProps; - expect(Object.keys(windowsPlatformViewProps).length).toBe(0); - - // This assignment will fail if there are any extra properties on IAdapterWindowsViewProps which are not defined by WindowsPlatformViewProps - const emptyWindowsViewProps: Omit, keyof WindowsPlatformViewProps> = {}; - expect(Object.keys(emptyWindowsViewProps).length).toBe(0); - - const windowsAdapterTextProps = {} as Required; - // This assignment will fail if we are missing properties on IAdapterWindowsTextProps which are defined by WindowsPlatformTextProps - const windowsPlatformTextProps: Required = windowsAdapterTextProps; - expect(Object.keys(windowsPlatformTextProps).length).toBe(0); - - // This assignment will fail if there are any extra properties on IAdapterWindowsTextProps which are not defined by WindowsPlatformTextProps - const emptyWindowsTextProps: Omit, keyof WindowsPlatformTextProps> = {}; - expect(Object.keys(emptyWindowsTextProps).length).toBe(0); - - const windowsAdapterImageProps = {} as Required; - // This assignment will fail if we are missing properties on IAdapterWindowsImageProps which are defined by WindowsPlatformImageProps - const windowsPlatformImageProps: Required = windowsAdapterImageProps; - expect(Object.keys(windowsPlatformImageProps).length).toBe(0); - - // This assignment will fail if there are any extra properties on IAdapterWindowsImageProps which are not defined by WindowsPlatformImageProps - const emptyWindowsImageProps: Omit, keyof WindowsPlatformImageProps> = {}; - expect(Object.keys(emptyWindowsImageProps).length).toBe(0); - }); - - test('verify macOS types', () => { - const macOSAdapterViewProps = {} as Required; - // This assignment will fail if we are missing properties on IAdapterMacOSViewProps which are defined by MacOSPlatformViewProps - const macOSPlatformViewProps: Required = macOSAdapterViewProps; - expect(Object.keys(macOSPlatformViewProps).length).toBe(0); - - // This assignment will fail if there are any extra properties on IAdapterMacOSViewProps which are not defined by MacOSPlatformViewProps - const emptyMacOSViewProps: Omit, keyof MacOSPlatformViewProps> = {}; - expect(Object.keys(emptyMacOSViewProps).length).toBe(0); - - const macOSAdapterTextProps = {} as Required; - // This assignment will fail if we are missing properties on IAdapterMacOSTextProps which are defined by MacOSPlatformTextProps - const macOSPlatformTextProps: Required = macOSAdapterTextProps; - expect(Object.keys(macOSPlatformTextProps).length).toBe(0); - - // This assignment will fail if there are any extra properties on IAdapterMacOSTextProps which are not defined by MacOSPlatformTextProps - const emptyMacOSTextProps: Omit, keyof MacOSPlatformTextProps> = {}; - expect(Object.keys(emptyMacOSTextProps).length).toBe(0); - - const macOSAdapterImageProps = {} as Required; - // This assignment will fail if we are missing properties on IAdapterMacOSImageProps which are defined by MacOSPlatformImageProps - const macOSPlatformImageProps: Required = macOSAdapterImageProps; - expect(Object.keys(macOSPlatformImageProps).length).toBe(0); - - // This assignment will fail if there are any extra properties on IAdapterMacOSImageProps which are not defined by MacOSPlatformImageProps - const emptyMacOSImageProps: Omit, keyof MacOSPlatformImageProps> = {}; - expect(Object.keys(emptyMacOSImageProps).length).toBe(0); - }); -}); diff --git a/packages/utils/adapters/src/__tests__/ios.test.ts b/packages/utils/adapters/src/__tests__/ios.test.ts deleted file mode 100644 index 862a4d7706..0000000000 --- a/packages/utils/adapters/src/__tests__/ios.test.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { filterViewProps, filterTextProps, filterImageProps } from '../adapters.ios'; - -describe('iOS filter tests', () => { - test('filterTextProps works', () => { - expect(filterTextProps('foo')).toBeFalsy(); - expect(filterTextProps('children')).toBeTruthy(); - expect(filterTextProps('style')).toBeTruthy(); - expect(filterTextProps('accessible')).toBeTruthy(); - expect(filterTextProps('selectable')).toBeFalsy(); - }); - - test('filterViewProps works', () => { - expect(filterViewProps('foo')).toBeFalsy(); - expect(filterViewProps('children')).toBeTruthy(); - expect(filterViewProps('style')).toBeTruthy(); - expect(filterViewProps('accessible')).toBeTruthy(); - expect(filterViewProps('animationClass')).toBeFalsy(); - expect(filterViewProps('shouldRasterizeIOS')).toBeTruthy(); - expect(filterViewProps('renderToHardwareTextureAndroid')).toBeFalsy(); - }); - - test('filterImageProps works', () => { - expect(filterImageProps('foo')).toBeFalsy(); - expect(filterImageProps('children')).toBeTruthy(); - expect(filterImageProps('style')).toBeTruthy(); - expect(filterImageProps('accessible')).toBeTruthy(); - }); -}); diff --git a/packages/utils/adapters/src/__tests__/win32.test.ts b/packages/utils/adapters/src/__tests__/win32.test.ts deleted file mode 100644 index 73757ff79c..0000000000 --- a/packages/utils/adapters/src/__tests__/win32.test.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { filterViewProps, filterTextProps, filterImageProps } from '../adapters.win32'; - -describe('Base filter tests', () => { - test('filterTextProps works', () => { - expect(filterTextProps('foo')).toBeFalsy(); - expect(filterTextProps('children')).toBeTruthy(); - expect(filterTextProps('style')).toBeTruthy(); - expect(filterTextProps('accessible')).toBeTruthy(); - }); - - test('filterViewProps works', () => { - expect(filterViewProps('foo')).toBeFalsy(); - expect(filterViewProps('children')).toBeTruthy(); - expect(filterViewProps('style')).toBeTruthy(); - expect(filterViewProps('accessible')).toBeTruthy(); - expect(filterViewProps('animationClass')).toBeTruthy(); - }); - - test('filterImageProps works', () => { - expect(filterImageProps('foo')).toBeFalsy(); - expect(filterImageProps('children')).toBeTruthy(); - expect(filterImageProps('style')).toBeTruthy(); - expect(filterImageProps('accessible')).toBeTruthy(); - }); -}); diff --git a/packages/utils/adapters/src/adapter.types.macos.ts b/packages/utils/adapters/src/adapter.types.macos.ts deleted file mode 100644 index d2d3f9d369..0000000000 --- a/packages/utils/adapters/src/adapter.types.macos.ts +++ /dev/null @@ -1,142 +0,0 @@ -import type { TextProps, ViewProps, ImageProps, HostComponent, NativeSyntheticEvent } from 'react-native'; - -/** - * https://developer.mozilla.org/en-US/docs/Web/API/UIEvent - */ -export interface NativeUIEvent { - /** - * Returns a long with details about the event, depending on the event type. - */ - readonly detail: number; -} - -/** - * https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent - */ -export interface NativeMouseEvent extends NativeUIEvent { - /** - * The X coordinate of the mouse pointer in global (screen) coordinates. - */ - readonly screenX: number; - /** - * The Y coordinate of the mouse pointer in global (screen) coordinates. - */ - readonly screenY: number; - /** - * The X coordinate of the mouse pointer relative to the whole document. - */ - readonly pageX: number; - /** - * The Y coordinate of the mouse pointer relative to the whole document. - */ - readonly pageY: number; - /** - * The X coordinate of the mouse pointer in local (DOM content) coordinates. - */ - readonly clientX: number; - /** - * The Y coordinate of the mouse pointer in local (DOM content) coordinates. - */ - readonly clientY: number; - /** - * Alias for NativeMouseEvent.clientX - */ - readonly x: number; - /** - * Alias for NativeMouseEvent.clientY - */ - readonly y: number; - /** - * Returns true if the control key was down when the mouse event was fired. - */ - readonly ctrlKey: boolean; - /** - * Returns true if the shift key was down when the mouse event was fired. - */ - readonly shiftKey: boolean; - /** - * Returns true if the alt key was down when the mouse event was fired. - */ - readonly altKey: boolean; - /** - * Returns true if the meta key was down when the mouse event was fired. - */ - readonly metaKey: boolean; - /** - * The button number that was pressed (if applicable) when the mouse event was fired. - */ - readonly button: number; - /** - * The buttons being depressed (if any) when the mouse event was fired. - */ - readonly buttons: number; - /** - * The secondary target for the event, if there is one. - */ - readonly relatedTarget: null | number | React.ElementRef>; - // offset is proposed: https://drafts.csswg.org/cssom-view/#extensions-to-the-mouseevent-interface - /** - * The X coordinate of the mouse pointer between that event and the padding edge of the target node - */ - readonly offsetX: number; - /** - * The Y coordinate of the mouse pointer between that event and the padding edge of the target node - */ - readonly offsetY: number; -} -export type MouseEvent = NativeSyntheticEvent; - -// [macOS -export interface NativeKeyEvent { - // Modifier keys - capsLockKey: boolean; - shiftKey: boolean; - ctrlKey: boolean; - altKey: boolean; - metaKey: boolean; - numericPadKey: boolean; - helpKey: boolean; - functionKey: boolean; - // Key options - ArrowLeft: boolean; - ArrowRight: boolean; - ArrowUp: boolean; - ArrowDown: boolean; - key: string; -} - -export type KeyEvent = NativeSyntheticEvent; -export type DraggedType = 'fileUrl'; -export type DraggedTypesType = DraggedType | DraggedType[]; - -export type IAdapterMacOSViewProps = ViewProps & { - acceptsFirstMouse?: boolean; - allowsVibrancy?: boolean; - draggedTypes?: DraggedTypesType; - enableFocusRing?: boolean; - keyDownEvents?: NativeKeyEvent[]; - keyUpEvents?: NativeKeyEvent[]; - mouseDownCanMoveWindow?: boolean; - onDragEnter?: (event: MouseEvent) => void; - onDragLeave?: (event: MouseEvent) => void; - onDrop?: (event: MouseEvent) => void; - onKeyDown?: (event: KeyEvent) => void; - onKeyUp?: (event: KeyEvent) => void; - onMouseEnter?: (event: MouseEvent) => void; - onMouseLeave?: (event: MouseEvent) => void; - passthroughAllKeyEvents?: boolean; - validKeysDown?: string[]; - validKeysUp?: string[]; -}; - -export type IAdapterMacOSTextProps = TextProps & { - enableFocusRing?: boolean; - focusable?: boolean; - onMouseEnter?: (event: MouseEvent) => void; - onMouseLeave?: (event: MouseEvent) => void; - tooltip?: string; -}; - -export type IAdapterMacOSImageProps = ImageProps & { - tooltip?: string; -}; diff --git a/packages/utils/adapters/src/adapter.types.win32.ts b/packages/utils/adapters/src/adapter.types.win32.ts deleted file mode 100644 index 9b0cc7ba61..0000000000 --- a/packages/utils/adapters/src/adapter.types.win32.ts +++ /dev/null @@ -1,315 +0,0 @@ -import type { TextProps, ViewProps, ImageProps, NativeSyntheticEvent, HostComponent } from 'react-native'; - -export interface INativeKeyboardEvent { - altKey: boolean; - ctrlKey: boolean; - metaKey: boolean; - shiftKey: boolean; - key: string; -} -export type IKeyboardEvent = NativeSyntheticEvent; - -type PartiallyRequired = Pick, Exclude> & Pick; - -export type IHandledKeyboardEvent = PartiallyRequired & { - eventPhase?: 0 | 1 | 2 | 3; -}; - -/** - * https://developer.mozilla.org/en-US/docs/Web/API/UIEvent - */ -export interface NativeUIEvent { - /** - * Returns a long with details about the event, depending on the event type. - */ - readonly detail: number; -} - -/** - * https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent - */ -export interface NativeMouseEvent extends NativeUIEvent { - /** - * The X coordinate of the mouse pointer in global (screen) coordinates. - */ - readonly screenX: number; - /** - * The Y coordinate of the mouse pointer in global (screen) coordinates. - */ - readonly screenY: number; - /** - * The X coordinate of the mouse pointer relative to the whole document. - */ - readonly pageX: number; - /** - * The Y coordinate of the mouse pointer relative to the whole document. - */ - readonly pageY: number; - /** - * The X coordinate of the mouse pointer in local (DOM content) coordinates. - */ - readonly clientX: number; - /** - * The Y coordinate of the mouse pointer in local (DOM content) coordinates. - */ - readonly clientY: number; - /** - * Alias for NativeMouseEvent.clientX - */ - readonly x: number; - /** - * Alias for NativeMouseEvent.clientY - */ - readonly y: number; - /** - * Returns true if the control key was down when the mouse event was fired. - */ - readonly ctrlKey: boolean; - /** - * Returns true if the shift key was down when the mouse event was fired. - */ - readonly shiftKey: boolean; - /** - * Returns true if the alt key was down when the mouse event was fired. - */ - readonly altKey: boolean; - /** - * Returns true if the meta key was down when the mouse event was fired. - */ - readonly metaKey: boolean; - /** - * The button number that was pressed (if applicable) when the mouse event was fired. - */ - readonly button: number; - /** - * The buttons being depressed (if any) when the mouse event was fired. - */ - readonly buttons: number; - /** - * The secondary target for the event, if there is one. - */ - readonly relatedTarget: null | number | React.ElementRef>; - // offset is proposed: https://drafts.csswg.org/cssom-view/#extensions-to-the-mouseevent-interface - /** - * The X coordinate of the mouse pointer between that event and the padding edge of the target node - */ - readonly offsetX: number; - /** - * The Y coordinate of the mouse pointer between that event and the padding edge of the target node - */ - readonly offsetY: number; -} - -// eslint-disable-next-line @typescript-eslint/no-empty-object-type -type ObjectBase = {}; - -export type MouseEvent = NativeSyntheticEvent; - -export type Cursor = - | 'auto' - | 'default' - | 'pointer' - | 'help' - | 'not-allowed' - | 'wait' - | 'move' - | 'nesw-resize' - | 'ns-resize' - | 'nwse-resize' - | 'we-resize' - | 'text'; - -// [Win32] -export type AnnotationType = - | 'AdvanceProofingIssue' - | 'Author' - | 'CircularReferenceError' - | 'Comment' - | 'ConflictingChange' - | 'DataValidationError' - | 'DeletionChange' - | 'EditingLockedChange' - | 'Endnote' - | 'ExternalChange' - | 'Footer' - | 'Footnote' - | 'FormatChange' - | 'FormulaError' - | 'GrammarError' - | 'Header' - | 'Highlighted' - | 'InsertionChange' - | 'Mathematics' - | 'MoveChange' - | 'SpellingError' - | 'TrackChanges' - | 'Unknown' - | 'UnsyncedChange'; - -// [Win32] -export type AccessibilityAnnotationInfo = Readonly<{ - typeID: AnnotationType; - typeName?: string; - author?: string; - dateTime?: string; - target?: string; -}>; - -export type IAdapterWin32ViewProps = ViewProps & { - onKeyDown?: (args: IKeyboardEvent) => void; - onKeyDownCapture?: (args: IKeyboardEvent) => void; - onKeyUp?: (args: IKeyboardEvent) => void; - onKeyUpCapture?: (args: IKeyboardEvent) => void; - - keyDownEvents?: IHandledKeyboardEvent[]; - keyUpEvents?: IHandledKeyboardEvent[]; - - onMouseLeave?: (event: MouseEvent) => void; - onMouseEnter?: (event: MouseEvent) => void; - - tooltip?: string; - tabIndex?: number; - enableFocusRing?: boolean; - onBlur?: (ev: NativeSyntheticEvent) => void; - onBlurCapture?: (ev: NativeSyntheticEvent) => void; - onFocus?: (ev: NativeSyntheticEvent) => void; - onFocusCapture?: (ev: NativeSyntheticEvent) => void; - cursor?: Cursor; - animationClass?: string; - focusable?: boolean; - - 'aria-multiselectable'?: boolean | undefined; - 'aria-required'?: boolean | undefined; - 'aria-posinset'?: number | undefined; - 'aria-setsize'?: number | undefined; - 'aria-description'?: string | undefined; - 'aria-level'?: number | undefined; - 'aria-controls'?: string | undefined; - 'aria-describedby'?: string | undefined; - - accessibilitySetSize?: number; - accessibilityPositionInSet?: number; - accessibilityDescription?: string; - accessibilityAnnotation?: AccessibilityAnnotationInfo; - accessibilityAccessKey?: string; - accessibilityLevel?: number; - accessibilityItemType?: string; - accessibilityControls?: string | undefined; - accessibilityDescribedBy?: string | undefined; - - accessibilityRole?: - | 'none' - | 'alertdialog' // Win32 - | 'application' // Win32 - | 'dialog' // Win32 - | 'group' // Win32 - | 'listitem' // Win32 - | 'presentation' // Win32 - | 'tabpanel' // Win32 - | 'textbox' // Win32 - | 'tree' // Win32 - | 'treeitem' // Win32 - | 'button' - | 'togglebutton' - | 'link' - | 'search' - | 'image' - | 'keyboardkey' - | 'text' - | 'adjustable' - | 'imagebutton' - | 'header' - | 'summary' - | 'alert' - | 'checkbox' - | 'combobox' - | 'menu' - | 'menubar' - | 'menuitem' - | 'progressbar' - | 'radio' - | 'radiogroup' - | 'scrollbar' - | 'spinbutton' - | 'switch' - | 'tab' - | 'tabbar' - | 'tablist' - | 'timer' - | 'list' - | 'toolbar'; -}; - -/** - * Role-based text style names. - */ -export type TextWin32TextStyle = - | 'None' - | 'SmallStandard' - | 'SmallSecondary' - | 'MediumStandard' - | 'MediumSecondary' - | 'MediumApp' - | 'MediumBold' - | 'MediumBoldApp' - | 'LargeStandard' - | 'LargePlusStandard' - | 'ExtraLargeStandard' - | 'HugeStandard'; - -export type IAdapterWin32TextProps = TextProps & { - onKeyDown?: (args: IKeyboardEvent) => void; - onKeyDownCapture?: (args: IKeyboardEvent) => void; - onKeyUp?: (args: IKeyboardEvent) => void; - onKeyUpCapture?: (args: IKeyboardEvent) => void; - - keyDownEvents?: IHandledKeyboardEvent[]; - keyUpEvents?: IHandledKeyboardEvent[]; - - 'aria-multiselectable'?: boolean | undefined; - 'aria-required'?: boolean | undefined; - accessibilitySetSize?: number; - accessibilityPositionInSet?: number; - accessibilityDescription?: string; - accessibilityAnnotation?: AccessibilityAnnotationInfo; - accessibilityAccessKey?: string; - accessibilityLevel?: number; - accessibilityItemType?: string; - accessibilityControls?: string | undefined; - accessibilityDescribedBy?: string | undefined; - 'aria-posinset'?: number | undefined; - 'aria-setsize'?: number | undefined; - 'aria-description'?: string | undefined; - 'aria-level'?: number | undefined; - 'aria-controls'?: string | undefined; - 'aria-describedby'?: string | undefined; - - onBlur?: (ev: NativeSyntheticEvent) => void; - onBlurCapture?: (ev: NativeSyntheticEvent) => void; - onFocus?: (ev: NativeSyntheticEvent) => void; - onFocusCapture?: (ev: NativeSyntheticEvent) => void; - - focusable?: boolean; - textStyle?: TextWin32TextStyle; - tooltip?: string; -}; - -export type IAdapterWin32ImageProps = ImageProps & { - 'aria-multiselectable'?: boolean | undefined; - 'aria-required'?: boolean | undefined; - accessibilitySetSize?: number; - accessibilityPositionInSet?: number; - accessibilityDescription?: string; - accessibilityAnnotation?: AccessibilityAnnotationInfo; - accessibilityAccessKey?: string; - accessibilityLevel?: number; - accessibilityItemType?: string; - accessibilityControls?: string | undefined; - accessibilityDescribedBy?: string | undefined; - 'aria-posinset'?: number | undefined; - 'aria-setsize'?: number | undefined; - 'aria-description'?: string | undefined; - 'aria-level'?: number | undefined; - 'aria-controls'?: string | undefined; - 'aria-describedby'?: string | undefined; -}; diff --git a/packages/utils/adapters/src/adapter.types.windows.ts b/packages/utils/adapters/src/adapter.types.windows.ts deleted file mode 100644 index 378a9918ad..0000000000 --- a/packages/utils/adapters/src/adapter.types.windows.ts +++ /dev/null @@ -1,198 +0,0 @@ -import type { TextProps, ViewProps, ImageProps, NativeSyntheticEvent } from 'react-native'; - -export interface INativeKeyboardEvent { - altKey: boolean; - ctrlKey: boolean; - metaKey: boolean; - shiftKey: boolean; - key: string; - code?: string; - eventPhase: 0 | 1 | 2 | 3; -} - -export interface IHandledKeyboardEvent { - altKey?: boolean; - ctrlKey?: boolean; - metaKey?: boolean; - shiftKey?: boolean; - code?: string; - handledEventPhase?: 0 | 1 | 2 | 3; -} - -export type IKeyboardEvent = NativeSyntheticEvent; - -export interface NativeMouseEvent { - target: number; - identifier: number; - pageX: number; - pageY: number; - locationX: number; - locationY: number; - timestamp: number; - pointerType: string; - force: number; - isLeftButton: boolean; - isRightButton: boolean; - isMiddleButton: boolean; - isBarrelButtonPressed: boolean; - isHorizontalScrollWheel: boolean; - isEraser: boolean; - shiftKey: boolean; - ctrlKey: boolean; - altKey: boolean; -} - -export type MouseEvent = NativeSyntheticEvent; - -export type Cursor = - | 'auto' - | 'default' - | 'pointer' - | 'help' - | 'not-allowed' - | 'wait' - | 'move' - | 'nesw-resize' - | 'ns-resize' - | 'nwse-resize' - | 'we-resize' - | 'text'; - -// [Windows] -export type AnnotationType = - | 'AdvanceProofingIssue' - | 'Author' - | 'CircularReferenceError' - | 'Comment' - | 'ConflictingChange' - | 'DataValidationError' - | 'DeletionChange' - | 'EditingLockedChange' - | 'Endnote' - | 'ExternalChange' - | 'Footer' - | 'Footnote' - | 'FormatChange' - | 'FormulaError' - | 'GrammarError' - | 'Header' - | 'Highlighted' - | 'InsertionChange' - | 'Mathematics' - | 'MoveChange' - | 'SpellingError' - | 'TrackChanges' - | 'Unknown' - | 'UnsyncedChange'; - -// [Windows] -export type AccessibilityAnnotationInfo = Readonly<{ - typeID: AnnotationType; - typeName?: string; - author?: string; - dateTime?: string; - target?: string; -}>; - -export type IAdapterWindowsViewProps = ViewProps & { - onKeyDown?: (args: IKeyboardEvent) => void; - onKeyDownCapture?: (args: IKeyboardEvent) => void; - onKeyUp?: (args: IKeyboardEvent) => void; - onKeyUpCapture?: (args: IKeyboardEvent) => void; - - keyDownEvents?: IHandledKeyboardEvent[]; - keyUpEvents?: IHandledKeyboardEvent[]; - - onMouseLeave?: (event: MouseEvent) => void; - onMouseEnter?: (event: MouseEvent) => void; - - tooltip?: string; - tabIndex?: number; - enableFocusRing?: boolean; - focusable?: boolean; - - 'aria-posinset'?: number | undefined; - 'aria-setsize'?: number | undefined; - 'aria-level'?: number | undefined; - - accessibilitySetSize?: number; - accessibilityPosInSet?: number; - accessibilityLevel?: number; - - accessibilityRole?: - | 'none' - | 'alertdialog' // Windows - | 'application' // Windows - | 'dialog' // Windows - | 'group' // Windows - | 'listitem' // Windows - | 'presentation' // Windows - | 'tabpanel' // Windows - | 'textbox' // Windows - | 'tree' // Windows - | 'treeitem' // Windows - | 'button' - | 'togglebutton' - | 'link' - | 'search' - | 'image' - | 'keyboardkey' - | 'text' - | 'adjustable' - | 'imagebutton' - | 'header' - | 'summary' - | 'alert' - | 'checkbox' - | 'combobox' - | 'menu' - | 'menubar' - | 'menuitem' - | 'progressbar' - | 'radio' - | 'radiogroup' - | 'scrollbar' - | 'spinbutton' - | 'switch' - | 'tab' - | 'tabbar' - | 'tablist' - | 'timer' - | 'list' - | 'toolbar'; -}; - -/** - * Role-based text style names. - */ -export type TextWindowsTextStyle = - | 'None' - | 'SmallStandard' - | 'SmallSecondary' - | 'MediumStandard' - | 'MediumSecondary' - | 'MediumApp' - | 'MediumBold' - | 'MediumBoldApp' - | 'LargeStandard' - | 'LargePlusStandard' - | 'ExtraLargeStandard' - | 'HugeStandard'; - -export type IAdapterWindowsTextProps = TextProps & { - accessibilitySetSize?: number; - accessibilityPosInSet?: number; - accessibilityLevel?: number; - 'aria-posinset'?: number | undefined; - 'aria-setsize'?: number | undefined; - 'aria-level'?: number | undefined; -}; - -export type IAdapterWindowsImageProps = ImageProps & { - accessibilitySetSize?: number; - accessibilityPosInSet?: number; - accessibilityLevel?: number; - 'aria-posinset'?: number | undefined; - 'aria-setsize'?: number | undefined; - 'aria-level'?: number | undefined; -}; diff --git a/packages/utils/adapters/src/adapters.android.ts b/packages/utils/adapters/src/adapters.android.ts deleted file mode 100644 index 233f2ccafa..0000000000 --- a/packages/utils/adapters/src/adapters.android.ts +++ /dev/null @@ -1,224 +0,0 @@ -import type { TextProps, TextPropsIOS, ViewProps, ViewPropsIOS, ImageProps, ImagePropsIOS } from 'react-native'; - -import type { IFilterMask } from './filter.types'; - -// export core interface types -export type ITextProps = Omit; -export type IViewProps = Omit; -export type IImageProps = Omit; - -const _viewMask: IFilterMask = { - children: true, - accessibilityActions: true, - accessibilityElementsHidden: true, - accessibilityHint: true, - accessibilityIgnoresInvertColors: true, - accessibilityLabel: true, - accessibilityLabelledBy: true, - accessibilityLanguage: true, - accessibilityLiveRegion: true, - accessibilityRole: true, - accessibilityState: true, - accessibilityValue: true, - accessibilityViewIsModal: true, - accessible: true, - collapsable: true, - focusable: true, - hitSlop: true, - id: true, - importantForAccessibility: true, - nativeID: true, - needsOffscreenAlphaCompositing: true, - onAccessibilityAction: true, - onAccessibilityEscape: true, - onAccessibilityTap: true, - onLayout: true, - onMagicTap: true, - onMoveShouldSetResponder: true, - onMoveShouldSetResponderCapture: true, - onPointerCancel: true, - onPointerCancelCapture: true, - onPointerDown: true, - onPointerDownCapture: true, - onPointerEnter: true, - onPointerEnterCapture: true, - onPointerLeave: true, - onPointerLeaveCapture: true, - onPointerMove: true, - onPointerMoveCapture: true, - onPointerUp: true, - onPointerUpCapture: true, - onResponderEnd: true, - onResponderGrant: true, - onResponderMove: true, - onResponderReject: true, - onResponderRelease: true, - onResponderStart: true, - onResponderTerminate: true, - onResponderTerminationRequest: true, - onStartShouldSetResponder: true, - onStartShouldSetResponderCapture: true, - onTouchCancel: true, - onTouchEnd: true, - onTouchEndCapture: true, - onTouchMove: true, - onTouchStart: true, - pointerEvents: true, - removeClippedSubviews: true, - renderToHardwareTextureAndroid: true, - role: true, - style: true, - tabIndex: true, - testID: true, - 'aria-busy': true, - 'aria-checked': true, - 'aria-disabled': true, - 'aria-expanded': true, - 'aria-hidden': true, - 'aria-label': true, - 'aria-labelledby': true, - 'aria-live': true, - 'aria-modal': true, - 'aria-selected': true, - 'aria-valuemax': true, - 'aria-valuemin': true, - 'aria-valuenow': true, - 'aria-valuetext': true, -}; - -const _textMask: IFilterMask = { - children: true, - accessibilityActions: true, - accessibilityElementsHidden: true, - accessibilityHint: true, - accessibilityIgnoresInvertColors: true, - accessibilityLabel: true, - accessibilityLabelledBy: true, - accessibilityLanguage: true, - accessibilityLiveRegion: true, - accessibilityRole: true, - accessibilityState: true, - accessibilityValue: true, - accessibilityViewIsModal: true, - accessible: true, - allowFontScaling: true, - android_hyphenationFrequency: true, - dataDetectorType: true, - disabled: true, - ellipsizeMode: true, - id: true, - importantForAccessibility: true, - lineBreakMode: true, - maxFontSizeMultiplier: true, - nativeID: true, - numberOfLines: true, - onAccessibilityAction: true, - onAccessibilityEscape: true, - onAccessibilityTap: true, - onLayout: true, - onLongPress: true, - minimumFontScale: true, - onMagicTap: true, - onPress: true, - onPressIn: true, - onPressOut: true, - onTextLayout: true, - role: true, - selectable: true, - selectionColor: true, - style: true, - testID: true, - textBreakStrategy: true, - 'aria-busy': true, - 'aria-checked': true, - 'aria-disabled': true, - 'aria-expanded': true, - 'aria-hidden': true, - 'aria-label': true, - 'aria-labelledby': true, - 'aria-live': true, - 'aria-modal': true, - 'aria-selected': true, - 'aria-valuemax': true, - 'aria-valuemin': true, - 'aria-valuenow': true, - 'aria-valuetext': true, -}; - -const _imageMask: IFilterMask = { - children: true, - accessibilityActions: true, - accessibilityElementsHidden: true, - accessibilityHint: true, - accessibilityIgnoresInvertColors: true, - accessibilityLabel: true, - accessibilityLabelledBy: true, - accessibilityLanguage: true, - accessibilityLiveRegion: true, - accessibilityRole: true, - accessibilityState: true, - accessibilityValue: true, - accessibilityViewIsModal: true, - accessible: true, - alt: true, - borderBottomLeftRadius: true, - borderBottomRightRadius: true, - borderRadius: true, - borderTopLeftRadius: true, - borderTopRightRadius: true, - crossOrigin: true, - defaultSource: true, - fadeDuration: true, - height: true, - id: true, - importantForAccessibility: true, - loadingIndicatorSource: true, - nativeID: true, - onAccessibilityAction: true, - onAccessibilityEscape: true, - onAccessibilityTap: true, - onError: true, - onLayout: true, - onLoad: true, - onLoadEnd: true, - onLoadStart: true, - onMagicTap: true, - progressiveRenderingEnabled: true, - referrerPolicy: true, - resizeMethod: true, - resizeMode: true, - role: true, - source: true, - src: true, - srcSet: true, - style: true, - testID: true, - tintColor: true, - width: true, - 'aria-busy': true, - 'aria-checked': true, - 'aria-disabled': true, - 'aria-expanded': true, - 'aria-hidden': true, - 'aria-label': true, - 'aria-labelledby': true, - 'aria-live': true, - 'aria-modal': true, - 'aria-selected': true, - 'aria-valuemax': true, - 'aria-valuemin': true, - 'aria-valuenow': true, - 'aria-valuetext': true, -}; - -export function filterViewProps(propName: string): boolean { - return _viewMask[propName]; -} - -export function filterTextProps(propName: string): boolean { - return _textMask[propName]; -} - -export function filterImageProps(propName: string): boolean { - return _imageMask[propName]; -} diff --git a/packages/utils/adapters/src/adapters.ios.ts b/packages/utils/adapters/src/adapters.ios.ts deleted file mode 100644 index b0082b61de..0000000000 --- a/packages/utils/adapters/src/adapters.ios.ts +++ /dev/null @@ -1,228 +0,0 @@ -import type { TextProps, TextPropsAndroid, ViewProps, ViewPropsAndroid, ImageProps, ImagePropsAndroid } from 'react-native'; - -import type { IFilterMask } from './filter.types'; - -// export core interface types -export type ITextProps = Omit; -export type IViewProps = Omit; -export type IImageProps = Omit; - -const _viewMask: IFilterMask = { - children: true, - accessibilityActions: true, - accessibilityElementsHidden: true, - accessibilityHint: true, - accessibilityIgnoresInvertColors: true, - accessibilityLabel: true, - accessibilityLabelledBy: true, - accessibilityLanguage: true, - accessibilityLiveRegion: true, - accessibilityRole: true, - accessibilityState: true, - accessibilityValue: true, - accessibilityViewIsModal: true, - accessible: true, - hasTVPreferredFocus: true, - hitSlop: true, - id: true, - importantForAccessibility: true, - isTVSelectable: true, - nativeID: true, - needsOffscreenAlphaCompositing: true, - onAccessibilityAction: true, - onAccessibilityEscape: true, - onAccessibilityTap: true, - onLayout: true, - onMagicTap: true, - onMoveShouldSetResponder: true, - onMoveShouldSetResponderCapture: true, - onPointerCancel: true, - onPointerCancelCapture: true, - onPointerDown: true, - onPointerDownCapture: true, - onPointerEnter: true, - onPointerEnterCapture: true, - onPointerLeave: true, - onPointerLeaveCapture: true, - onPointerMove: true, - onPointerMoveCapture: true, - onPointerUp: true, - onPointerUpCapture: true, - onResponderEnd: true, - onResponderGrant: true, - onResponderMove: true, - onResponderReject: true, - onResponderRelease: true, - onResponderStart: true, - onResponderTerminate: true, - onResponderTerminationRequest: true, - onStartShouldSetResponder: true, - onStartShouldSetResponderCapture: true, - onTouchCancel: true, - onTouchEnd: true, - onTouchEndCapture: true, - onTouchMove: true, - onTouchStart: true, - pointerEvents: true, - removeClippedSubviews: true, - role: true, - shouldRasterizeIOS: true, - style: true, - testID: true, - tvParallaxMagnification: true, - tvParallaxProperties: true, - tvParallaxShiftDistanceX: true, - tvParallaxShiftDistanceY: true, - tvParallaxTiltAngle: true, - 'aria-busy': true, - 'aria-checked': true, - 'aria-disabled': true, - 'aria-expanded': true, - 'aria-hidden': true, - 'aria-label': true, - 'aria-labelledby': true, - 'aria-live': true, - 'aria-modal': true, - 'aria-selected': true, - 'aria-valuemax': true, - 'aria-valuemin': true, - 'aria-valuenow': true, - 'aria-valuetext': true, -}; - -const _textMask: IFilterMask = { - children: true, - accessibilityActions: true, - accessibilityElementsHidden: true, - accessibilityHint: true, - accessibilityIgnoresInvertColors: true, - accessibilityLabel: true, - accessibilityLabelledBy: true, - accessibilityLanguage: true, - accessibilityLiveRegion: true, - accessibilityRole: true, - accessibilityState: true, - accessibilityValue: true, - accessibilityViewIsModal: true, - accessible: true, - adjustsFontSizeToFit: true, - allowFontScaling: true, - dynamicTypeRamp: true, - ellipsizeMode: true, - id: true, - importantForAccessibility: true, - lineBreakMode: true, - lineBreakStrategyIOS: true, - maxFontSizeMultiplier: true, - minimumFontScale: true, - nativeID: true, - numberOfLines: true, - onAccessibilityAction: true, - onAccessibilityEscape: true, - onAccessibilityTap: true, - onLayout: true, - onLongPress: true, - onMagicTap: true, - onPress: true, - onPressIn: true, - onPressOut: true, - onTextLayout: true, - role: true, - style: true, - suppressHighlighting: true, - testID: true, - 'aria-busy': true, - 'aria-checked': true, - 'aria-disabled': true, - 'aria-expanded': true, - 'aria-hidden': true, - 'aria-label': true, - 'aria-labelledby': true, - 'aria-live': true, - 'aria-modal': true, - 'aria-selected': true, - 'aria-valuemax': true, - 'aria-valuemin': true, - 'aria-valuenow': true, - 'aria-valuetext': true, -}; - -const _imageMask: IFilterMask = { - children: true, - accessibilityActions: true, - accessibilityElementsHidden: true, - accessibilityHint: true, - accessibilityIgnoresInvertColors: true, - accessibilityLabel: true, - accessibilityLabelledBy: true, - accessibilityLanguage: true, - accessibilityLiveRegion: true, - accessibilityRole: true, - accessibilityState: true, - accessibilityValue: true, - accessibilityViewIsModal: true, - accessible: true, - alt: true, - blurRadius: true, - borderBottomLeftRadius: true, - borderBottomRightRadius: true, - borderRadius: true, - borderTopLeftRadius: true, - borderTopRightRadius: true, - capInsets: true, - crossOrigin: true, - defaultSource: true, - height: true, - id: true, - importantForAccessibility: true, - loadingIndicatorSource: true, - nativeID: true, - onAccessibilityAction: true, - onAccessibilityEscape: true, - onAccessibilityTap: true, - onError: true, - onLayout: true, - onLoad: true, - onLoadEnd: true, - onLoadStart: true, - onMagicTap: true, - onPartialLoad: true, - onProgress: true, - progressiveRenderingEnabled: true, - referrerPolicy: true, - resizeMode: true, - role: true, - source: true, - src: true, - srcSet: true, - style: true, - testID: true, - tintColor: true, - width: true, - 'aria-busy': true, - 'aria-checked': true, - 'aria-disabled': true, - 'aria-expanded': true, - 'aria-hidden': true, - 'aria-label': true, - 'aria-labelledby': true, - 'aria-live': true, - 'aria-modal': true, - 'aria-selected': true, - 'aria-valuemax': true, - 'aria-valuemin': true, - 'aria-valuenow': true, - 'aria-valuetext': true, -}; - -export function filterViewProps(propName: string): boolean { - return _viewMask[propName]; -} - -export function filterTextProps(propName: string): boolean { - return _textMask[propName]; -} - -export function filterImageProps(propName: string): boolean { - return _imageMask[propName]; -} diff --git a/packages/utils/adapters/src/adapters.macos.ts b/packages/utils/adapters/src/adapters.macos.ts deleted file mode 100644 index 6ca6b67491..0000000000 --- a/packages/utils/adapters/src/adapters.macos.ts +++ /dev/null @@ -1,273 +0,0 @@ -import type { ImageProps, TextProps, ViewProps } from 'react-native-macos'; - -import type { IFilterMask } from './filter.types'; - -// export core interface types -export type ITextProps = TextProps; -export type IViewProps = ViewProps; -export type IImageProps = ImageProps; - -const _viewMask: IFilterMask = { - children: true, - acceptsFirstMouse: true, - accessibilityActions: true, - accessibilityElementsHidden: true, - accessibilityHint: true, - accessibilityIgnoresInvertColors: true, - accessibilityLabel: true, - accessibilityLabelledBy: true, - accessibilityLanguage: true, - accessibilityLiveRegion: true, - accessibilityRole: true, - accessibilityState: true, - accessibilityValue: true, - accessibilityViewIsModal: true, - accessible: true, - allowsVibrancy: true, - collapsable: true, - draggedTypes: true, - enableFocusRing: true, - focusable: true, - hasTVPreferredFocus: false, - hitSlop: true, - id: true, - importantForAccessibility: true, - isTVSelectable: false, - keyDownEvents: true, - keyUpEvents: true, - nativeID: true, - needsOffscreenAlphaCompositing: true, - onAccessibilityAction: true, - onAccessibilityEscape: true, - onAccessibilityTap: true, - onDragEnter: true, - onDragLeave: true, - onDrop: true, - onKeyDown: true, - onKeyUp: true, - onLayout: true, - onMagicTap: true, - onMouseEnter: true, - onMouseLeave: true, - onMoveShouldSetResponder: true, - onMoveShouldSetResponderCapture: true, - onPointerCancel: true, - onPointerCancelCapture: true, - onPointerDown: true, - onPointerDownCapture: true, - onPointerEnter: true, - onPointerEnterCapture: true, - onPointerLeave: true, - onPointerLeaveCapture: true, - onPointerMove: true, - onPointerMoveCapture: true, - onPointerUp: true, - onPointerUpCapture: true, - onResponderEnd: true, - onResponderGrant: true, - onResponderMove: true, - onResponderReject: true, - onResponderRelease: true, - onResponderStart: true, - onResponderTerminate: true, - onResponderTerminationRequest: true, - onStartShouldSetResponder: true, - onStartShouldSetResponderCapture: true, - onTouchCancel: true, - onTouchEnd: true, - onTouchEndCapture: true, - onTouchMove: true, - onTouchStart: true, - passthroughAllKeyEvents: true, - pointerEvents: true, - removeClippedSubviews: true, - renderToHardwareTextureAndroid: false, - role: true, - shouldRasterizeIOS: true, - style: true, - tabIndex: true, - testID: true, - tvParallaxMagnification: false, - tvParallaxProperties: false, - tvParallaxShiftDistanceX: false, - tvParallaxShiftDistanceY: false, - tvParallaxTiltAngle: false, - validKeysDown: true, - validKeysUp: true, - 'aria-busy': true, - 'aria-checked': true, - 'aria-disabled': true, - 'aria-expanded': true, - 'aria-hidden': true, - 'aria-label': true, - 'aria-labelledby': true, - 'aria-live': true, - 'aria-modal': true, - 'aria-selected': true, - 'aria-valuemax': true, - 'aria-valuemin': true, - 'aria-valuenow': true, - 'aria-valuetext': true, - // Use spread for mac specific properties until rn-macos TS type definitions are fixed - ...{ - onBlur: true, - onFocus: true, - onPreferredScrollerStyleDidChange: true, - tooltip: true, - mouseDownCanMoveWindow: true, - }, -}; - -const _textMask: IFilterMask = { - accessibilityActions: true, - accessibilityElementsHidden: true, - accessibilityHint: true, - accessibilityIgnoresInvertColors: true, - accessibilityLabel: true, - accessibilityLabelledBy: true, - accessibilityLanguage: true, - accessibilityLiveRegion: true, - accessibilityRole: true, - accessibilityState: true, - accessibilityValue: true, - accessibilityViewIsModal: true, - accessible: true, - adjustsFontSizeToFit: true, - allowFontScaling: true, - android_hyphenationFrequency: false, - children: true, - dataDetectorType: true, - disabled: true, - dynamicTypeRamp: true, - ellipsizeMode: true, - focusable: true, - id: true, - importantForAccessibility: true, - lineBreakMode: true, - lineBreakStrategyIOS: true, - maxFontSizeMultiplier: true, - minimumFontScale: true, - nativeID: true, - numberOfLines: true, - onAccessibilityAction: true, - onAccessibilityEscape: true, - onAccessibilityTap: true, - onLayout: true, - onLongPress: true, - onMagicTap: true, - onMouseEnter: true, - onMouseLeave: true, - onPress: true, - onPressIn: true, - onPressOut: true, - onTextLayout: true, - role: true, - selectable: true, - selectionColor: true, - style: true, - suppressHighlighting: true, - testID: true, - textBreakStrategy: true, - 'aria-busy': true, - 'aria-checked': true, - 'aria-disabled': true, - 'aria-expanded': true, - 'aria-hidden': true, - 'aria-label': true, - 'aria-labelledby': true, - 'aria-live': true, - 'aria-modal': true, - 'aria-selected': true, - 'aria-valuemax': true, - 'aria-valuemin': true, - 'aria-valuenow': true, - 'aria-valuetext': true, - // Use spread for mac specific properties until rn-macos TS type definitions are fixed - ...{ - enableFocusRing: true, - tooltip: true, - }, -}; - -const _imageMask: IFilterMask = { - accessibilityActions: true, - accessibilityElementsHidden: true, - accessibilityHint: true, - accessibilityIgnoresInvertColors: true, - accessibilityLabel: true, - accessibilityLabelledBy: true, - accessibilityLanguage: true, - accessibilityLiveRegion: true, - accessibilityRole: true, - accessibilityState: true, - accessibilityValue: true, - accessibilityViewIsModal: true, - accessible: true, - alt: true, - blurRadius: true, - borderBottomLeftRadius: true, - borderBottomRightRadius: true, - borderRadius: true, - borderTopLeftRadius: true, - borderTopRightRadius: true, - capInsets: true, - children: true, - crossOrigin: true, - defaultSource: true, - fadeDuration: true, - height: true, - id: true, - importantForAccessibility: true, - loadingIndicatorSource: true, - nativeID: true, - onAccessibilityAction: true, - onAccessibilityEscape: true, - onAccessibilityTap: true, - onError: true, - onLayout: true, - onLoad: true, - onLoadEnd: true, - onLoadStart: true, - onMagicTap: true, - onPartialLoad: true, - onProgress: true, - progressiveRenderingEnabled: true, - referrerPolicy: true, - resizeMethod: true, - resizeMode: true, - role: true, - source: true, - src: true, - srcSet: true, - style: true, - testID: true, - tintColor: true, - tooltip: true, - width: true, - 'aria-busy': true, - 'aria-checked': true, - 'aria-disabled': true, - 'aria-expanded': true, - 'aria-hidden': true, - 'aria-label': true, - 'aria-labelledby': true, - 'aria-live': true, - 'aria-modal': true, - 'aria-selected': true, - 'aria-valuemax': true, - 'aria-valuemin': true, - 'aria-valuenow': true, - 'aria-valuetext': true, -}; - -export function filterViewProps(propName: string): boolean { - return _viewMask[propName]; -} - -export function filterTextProps(propName: string): boolean { - return _textMask[propName]; -} - -export function filterImageProps(propName: string): boolean { - return _imageMask[propName]; -} diff --git a/packages/utils/adapters/src/adapters.ts b/packages/utils/adapters/src/adapters.ts index d9506220f1..bae2fd574f 100644 --- a/packages/utils/adapters/src/adapters.ts +++ b/packages/utils/adapters/src/adapters.ts @@ -1,351 +1,15 @@ /** - * Projects with complex multi-platform code should use @rnx-kit/metro-plugin-typescript to properly type check against the platform they are building - * - * However, for build steps just using a default config of tsc, this platform neutral definition of the view types will be used. This is more relaxed - * and slightly less accurate than the type checking of your bundle using @rnx-kit/metro-plugin-typescript. + * filter functions aren't necessary at this point as react-native will ignore unknown props for core components. */ -import type { TextProps, ViewProps, ImageProps } from 'react-native'; - -// To avoid all projects having to depend on '@office-iss/react-native-win32' and other platform packages we use our own inline type definitions -import type { IAdapterMacOSViewProps, IAdapterMacOSTextProps, IAdapterMacOSImageProps } from './adapter.types.macos'; -import type { IAdapterWin32ViewProps, IAdapterWin32TextProps, IAdapterWin32ImageProps } from './adapter.types.win32'; -import type { IAdapterWindowsViewProps, IAdapterWindowsTextProps, IAdapterWindowsImageProps } from './adapter.types.windows'; -import type { IFilterMask } from './filter.types'; - -// export core interface types -export type ITextProps = TextProps & Partial & Partial & Partial; -export type IViewProps = ViewProps & Partial & Partial & Partial; -export type IImageProps = ImageProps & - Partial & - Partial & - Partial; - -const _viewMask: IFilterMask = { - children: true, - acceptsFirstMouse: true, - accessibilityAccessKey: true, - accessibilityActions: true, - accessibilityAnnotation: true, - accessibilityControls: true, - accessibilityDescribedBy: true, - accessibilityDescription: true, - accessibilityElementsHidden: true, - accessibilityHint: true, - accessibilityIgnoresInvertColors: true, - accessibilityItemType: true, - accessibilityLabel: true, - accessibilityLabelledBy: true, - accessibilityLanguage: true, - accessibilityLevel: true, - accessibilityLiveRegion: true, - accessibilityPosInSet: true, - accessibilityPositionInSet: true, - accessibilityRole: true, - accessibilitySetSize: true, - accessibilityState: true, - accessibilityValue: true, - accessibilityViewIsModal: true, - accessible: true, - allowsVibrancy: true, - animationClass: true, - collapsable: true, - cursor: true, - draggedTypes: true, - enableFocusRing: true, - focusable: true, - hasTVPreferredFocus: true, - hitSlop: true, - id: true, - importantForAccessibility: true, - isTVSelectable: true, - keyDownEvents: true, - keyUpEvents: true, - mouseDownCanMoveWindow: true, - nativeID: true, - needsOffscreenAlphaCompositing: true, - onAccessibilityAction: true, - onAccessibilityEscape: true, - onAccessibilityTap: true, - onBlur: true, - onBlurCapture: true, - onDragEnter: true, - onDragLeave: true, - onDrop: true, - onFocus: true, - onFocusCapture: true, - onKeyDown: true, - onKeyDownCapture: true, - onKeyUp: true, - onKeyUpCapture: true, - onLayout: true, - onMagicTap: true, - onMouseEnter: true, - onMouseLeave: true, - onMoveShouldSetResponder: true, - onMoveShouldSetResponderCapture: true, - onPointerCancel: true, - onPointerCancelCapture: true, - onPointerDown: true, - onPointerDownCapture: true, - onPointerEnter: true, - onPointerEnterCapture: true, - onPointerLeave: true, - onPointerLeaveCapture: true, - onPointerMove: true, - onPointerMoveCapture: true, - onPointerUp: true, - onPointerUpCapture: true, - onResponderEnd: true, - onResponderGrant: true, - onResponderMove: true, - onResponderReject: true, - onResponderRelease: true, - onResponderStart: true, - onResponderTerminate: true, - onResponderTerminationRequest: true, - onStartShouldSetResponder: true, - onStartShouldSetResponderCapture: true, - onTouchCancel: true, - onTouchEnd: true, - onTouchEndCapture: true, - onTouchMove: true, - onTouchStart: true, - passthroughAllKeyEvents: true, - pointerEvents: true, - removeClippedSubviews: true, - renderToHardwareTextureAndroid: true, - role: true, - shouldRasterizeIOS: true, - style: true, - tabIndex: true, - testID: true, - tooltip: true, - tvParallaxMagnification: true, - tvParallaxProperties: true, - tvParallaxShiftDistanceX: true, - tvParallaxShiftDistanceY: true, - tvParallaxTiltAngle: true, - validKeysDown: true, - validKeysUp: true, - 'aria-busy': true, - 'aria-checked': true, - 'aria-controls': true, - 'aria-describedby': true, - 'aria-description': true, - 'aria-disabled': true, - 'aria-expanded': true, - 'aria-hidden': true, - 'aria-label': true, - 'aria-labelledby': true, - 'aria-level': true, - 'aria-live': true, - 'aria-modal': true, - 'aria-multiselectable': true, - 'aria-posinset': true, - 'aria-required': true, - 'aria-selected': true, - 'aria-setsize': true, - 'aria-valuemax': true, - 'aria-valuemin': true, - 'aria-valuenow': true, - 'aria-valuetext': true, -}; - -const _textMask: IFilterMask = { - children: true, - accessibilityAccessKey: true, - accessibilityActions: true, - accessibilityAnnotation: true, - accessibilityControls: true, - accessibilityDescribedBy: true, - accessibilityDescription: true, - accessibilityElementsHidden: true, - accessibilityHint: true, - accessibilityIgnoresInvertColors: true, - accessibilityItemType: true, - accessibilityLabel: true, - accessibilityLabelledBy: true, - accessibilityLanguage: true, - accessibilityLevel: true, - accessibilityLiveRegion: true, - accessibilityPosInSet: true, - accessibilityPositionInSet: true, - accessibilityRole: true, - accessibilitySetSize: true, - accessibilityState: true, - accessibilityValue: true, - accessibilityViewIsModal: true, - accessible: true, - adjustsFontSizeToFit: true, - allowFontScaling: true, - android_hyphenationFrequency: true, - dataDetectorType: true, - disabled: true, - dynamicTypeRamp: true, - ellipsizeMode: true, - enableFocusRing: true, - focusable: true, - id: true, - importantForAccessibility: true, - keyDownEvents: true, - keyUpEvents: true, - lineBreakMode: true, - lineBreakStrategyIOS: true, - maxFontSizeMultiplier: true, - minimumFontScale: true, - nativeID: true, - numberOfLines: true, - onAccessibilityAction: true, - onAccessibilityEscape: true, - onAccessibilityTap: true, - onBlur: true, - onBlurCapture: true, - onFocus: true, - onFocusCapture: true, - onKeyDown: true, - onKeyDownCapture: true, - onKeyUp: true, - onKeyUpCapture: true, - onLayout: true, - onLongPress: true, - onMagicTap: true, - onMouseEnter: true, - onMouseLeave: true, - onPress: true, - onPressIn: true, - onPressOut: true, - onTextLayout: true, - role: true, - selectable: true, - selectionColor: true, - style: true, - suppressHighlighting: true, - testID: true, - textBreakStrategy: true, - textStyle: true, - tooltip: true, - 'aria-busy': true, - 'aria-checked': true, - 'aria-controls': true, - 'aria-describedby': true, - 'aria-description': true, - 'aria-disabled': true, - 'aria-expanded': true, - 'aria-hidden': true, - 'aria-label': true, - 'aria-labelledby': true, - 'aria-level': true, - 'aria-live': true, - 'aria-modal': true, - 'aria-multiselectable': true, - 'aria-posinset': true, - 'aria-required': true, - 'aria-selected': true, - 'aria-setsize': true, - 'aria-valuemax': true, - 'aria-valuemin': true, - 'aria-valuenow': true, - 'aria-valuetext': true, -}; - -const _imageMask: IFilterMask = { - children: true, - accessibilityAccessKey: true, - accessibilityActions: true, - accessibilityAnnotation: true, - accessibilityControls: true, - accessibilityDescribedBy: true, - accessibilityDescription: true, - accessibilityElementsHidden: true, - accessibilityHint: true, - accessibilityIgnoresInvertColors: true, - accessibilityItemType: true, - accessibilityLabel: true, - accessibilityLabelledBy: true, - accessibilityLanguage: true, - accessibilityLevel: true, - accessibilityLiveRegion: true, - accessibilityPosInSet: true, - accessibilityPositionInSet: true, - accessibilityRole: true, - accessibilitySetSize: true, - accessibilityState: true, - accessibilityValue: true, - accessibilityViewIsModal: true, - accessible: true, - alt: true, - blurRadius: true, - borderBottomLeftRadius: true, - borderBottomRightRadius: true, - borderRadius: true, - borderTopLeftRadius: true, - borderTopRightRadius: true, - capInsets: true, - crossOrigin: true, - defaultSource: true, - fadeDuration: true, - height: true, - id: true, - importantForAccessibility: true, - loadingIndicatorSource: true, - nativeID: true, - onAccessibilityAction: true, - onAccessibilityEscape: true, - onAccessibilityTap: true, - onError: true, - onLayout: true, - onLoad: true, - onLoadEnd: true, - onLoadStart: true, - onMagicTap: true, - onPartialLoad: true, - onProgress: true, - progressiveRenderingEnabled: true, - referrerPolicy: true, - resizeMethod: true, - resizeMode: true, - role: true, - source: true, - src: true, - srcSet: true, - style: true, - testID: true, - tintColor: true, - tooltip: true, - width: true, - 'aria-busy': true, - 'aria-checked': true, - 'aria-controls': true, - 'aria-describedby': true, - 'aria-description': true, - 'aria-disabled': true, - 'aria-expanded': true, - 'aria-hidden': true, - 'aria-label': true, - 'aria-labelledby': true, - 'aria-level': true, - 'aria-live': true, - 'aria-modal': true, - 'aria-multiselectable': true, - 'aria-posinset': true, - 'aria-required': true, - 'aria-selected': true, - 'aria-setsize': true, - 'aria-valuemax': true, - 'aria-valuemin': true, - 'aria-valuenow': true, - 'aria-valuetext': true, -}; - -export function filterViewProps(propName: string): boolean { - return _viewMask[propName]; +export function filterViewProps(_propName: string): boolean { + return true; } -export function filterTextProps(propName: string): boolean { - return _textMask[propName]; +export function filterTextProps(_propName: string): boolean { + return true; } -export function filterImageProps(propName: string): boolean { - return _imageMask[propName]; +export function filterImageProps(_propName: string): boolean { + return true; } diff --git a/packages/utils/adapters/src/adapters.win32.ts b/packages/utils/adapters/src/adapters.win32.ts deleted file mode 100644 index 55184790e5..0000000000 --- a/packages/utils/adapters/src/adapters.win32.ts +++ /dev/null @@ -1,320 +0,0 @@ -import type { ImageProps, TextProps, ViewProps } from '@office-iss/react-native-win32'; - -import type { IFilterMask } from './filter.types'; - -// export core interface types -export type ITextProps = TextProps; -export type IViewProps = ViewProps; -export type IImageProps = ImageProps; - -const _viewMask: IFilterMask = { - children: true, - accessibilityAccessKey: true, - accessibilityActions: true, - accessibilityAnnotation: true, - accessibilityControls: true, - accessibilityDescribedBy: true, - accessibilityDescription: true, - accessibilityElementsHidden: true, - accessibilityHint: true, - accessibilityIgnoresInvertColors: true, - accessibilityItemType: true, - accessibilityLabel: true, - accessibilityLabelledBy: true, - accessibilityLanguage: true, - accessibilityLevel: true, - accessibilityLiveRegion: true, - accessibilityPositionInSet: true, - accessibilityRole: true, - accessibilitySetSize: true, - accessibilityState: true, - accessibilityValue: true, - accessibilityViewIsModal: true, - accessible: true, - animationClass: true, - collapsable: true, - cursor: true, - enableFocusRing: true, - focusable: true, - hasTVPreferredFocus: false, - hitSlop: true, - id: true, - importantForAccessibility: true, - isTVSelectable: false, - keyDownEvents: true, - keyUpEvents: true, - nativeID: true, - needsOffscreenAlphaCompositing: true, - onAccessibilityAction: true, - onAccessibilityEscape: true, - onAccessibilityTap: true, - onBlur: true, - onBlurCapture: true, - onFocus: true, - onFocusCapture: true, - onKeyDown: true, - onKeyDownCapture: true, - onKeyUp: true, - onKeyUpCapture: true, - onLayout: true, - onMagicTap: false, - onMouseEnter: true, - onMouseLeave: true, - onMoveShouldSetResponder: true, - onMoveShouldSetResponderCapture: true, - onPointerCancel: true, - onPointerCancelCapture: true, - onPointerDown: true, - onPointerDownCapture: true, - onPointerEnter: true, - onPointerEnterCapture: true, - onPointerLeave: true, - onPointerLeaveCapture: true, - onPointerMove: true, - onPointerMoveCapture: true, - onPointerUp: true, - onPointerUpCapture: true, - onResponderEnd: true, - onResponderGrant: true, - onResponderMove: true, - onResponderReject: true, - onResponderRelease: true, - onResponderStart: true, - onResponderTerminate: true, - onResponderTerminationRequest: true, - onStartShouldSetResponder: true, - onStartShouldSetResponderCapture: true, - onTouchCancel: true, - onTouchEnd: true, - onTouchEndCapture: true, - onTouchMove: true, - onTouchStart: true, - pointerEvents: true, - removeClippedSubviews: true, - renderToHardwareTextureAndroid: true, - role: true, - shouldRasterizeIOS: true, - style: true, - tabIndex: true, - testID: true, - tooltip: true, - tvParallaxMagnification: false, - tvParallaxProperties: false, - tvParallaxShiftDistanceX: false, - tvParallaxShiftDistanceY: false, - tvParallaxTiltAngle: false, - 'aria-busy': true, - 'aria-checked': true, - 'aria-controls': true, - 'aria-describedby': true, - 'aria-description': true, - 'aria-disabled': true, - 'aria-expanded': true, - 'aria-hidden': true, - 'aria-label': true, - 'aria-labelledby': true, - 'aria-level': true, - 'aria-live': true, - 'aria-modal': true, - 'aria-multiselectable': true, - 'aria-posinset': true, - 'aria-required': true, - 'aria-selected': true, - 'aria-setsize': true, - 'aria-valuemax': true, - 'aria-valuemin': true, - 'aria-valuenow': true, - 'aria-valuetext': true, -}; - -const _textMask: IFilterMask = { - children: true, - accessibilityAccessKey: true, - accessibilityActions: true, - accessibilityAnnotation: true, - accessibilityControls: true, - accessibilityDescribedBy: true, - accessibilityDescription: true, - accessibilityElementsHidden: true, - accessibilityHint: true, - accessibilityIgnoresInvertColors: true, - accessibilityItemType: true, - accessibilityLabel: true, - accessibilityLabelledBy: true, - accessibilityLanguage: true, - accessibilityLevel: true, - accessibilityLiveRegion: true, - accessibilityPositionInSet: true, - accessibilityRole: true, - accessibilitySetSize: true, - accessibilityState: true, - accessibilityValue: true, - accessibilityViewIsModal: true, - accessible: true, - adjustsFontSizeToFit: false, - allowFontScaling: true, - android_hyphenationFrequency: false, - dataDetectorType: false, - disabled: true, - dynamicTypeRamp: false, - ellipsizeMode: true, - focusable: true, - id: true, - importantForAccessibility: true, - keyDownEvents: true, - keyUpEvents: true, - lineBreakMode: true, - lineBreakStrategyIOS: true, - maxFontSizeMultiplier: true, - minimumFontScale: true, - nativeID: true, - numberOfLines: true, - onAccessibilityAction: true, - onAccessibilityEscape: true, - onAccessibilityTap: true, - onBlur: true, - onBlurCapture: true, - onFocus: true, - onFocusCapture: true, - onKeyDown: true, - onKeyDownCapture: true, - onKeyUp: true, - onKeyUpCapture: true, - onLayout: true, - onLongPress: true, - onMagicTap: false, - onPress: true, - onPressIn: true, - onPressOut: true, - onTextLayout: true, - role: true, - selectable: true, - selectionColor: true, - style: true, - suppressHighlighting: true, - testID: true, - textBreakStrategy: true, - textStyle: true, - tooltip: true, - 'aria-busy': true, - 'aria-checked': true, - 'aria-controls': true, - 'aria-describedby': true, - 'aria-description': true, - 'aria-disabled': true, - 'aria-expanded': true, - 'aria-hidden': true, - 'aria-label': true, - 'aria-labelledby': true, - 'aria-level': true, - 'aria-live': true, - 'aria-modal': true, - 'aria-multiselectable': true, - 'aria-posinset': true, - 'aria-required': true, - 'aria-selected': true, - 'aria-setsize': true, - 'aria-valuemax': true, - 'aria-valuemin': true, - 'aria-valuenow': true, - 'aria-valuetext': true, -}; - -const _imageMask: IFilterMask = { - children: true, - accessibilityAccessKey: true, - accessibilityActions: true, - accessibilityAnnotation: true, - accessibilityControls: true, - accessibilityDescribedBy: true, - accessibilityDescription: true, - accessibilityElementsHidden: true, - accessibilityHint: true, - accessibilityIgnoresInvertColors: true, - accessibilityItemType: true, - accessibilityLabel: true, - accessibilityLabelledBy: true, - accessibilityLanguage: true, - accessibilityLevel: true, - accessibilityLiveRegion: true, - accessibilityPositionInSet: true, - accessibilityRole: true, - accessibilitySetSize: true, - accessibilityState: true, - accessibilityValue: true, - accessibilityViewIsModal: true, - accessible: true, - alt: true, - blurRadius: true, - borderBottomLeftRadius: true, - borderBottomRightRadius: true, - borderRadius: true, - borderTopLeftRadius: true, - borderTopRightRadius: true, - capInsets: true, - crossOrigin: true, - defaultSource: true, - fadeDuration: true, - height: true, - id: true, - importantForAccessibility: true, - loadingIndicatorSource: true, - nativeID: true, - onAccessibilityAction: true, - onAccessibilityEscape: true, - onAccessibilityTap: true, - onError: true, - onLayout: true, - onLoad: true, - onLoadEnd: true, - onLoadStart: true, - onMagicTap: true, - onPartialLoad: true, - onProgress: true, - progressiveRenderingEnabled: true, - referrerPolicy: true, - resizeMethod: true, - resizeMode: true, - role: true, - source: true, - src: true, - srcSet: true, - style: true, - testID: true, - tintColor: true, - width: true, - 'aria-busy': true, - 'aria-checked': true, - 'aria-controls': true, - 'aria-describedby': true, - 'aria-description': true, - 'aria-disabled': true, - 'aria-expanded': true, - 'aria-hidden': true, - 'aria-label': true, - 'aria-labelledby': true, - 'aria-level': true, - 'aria-live': true, - 'aria-modal': true, - 'aria-multiselectable': true, - 'aria-posinset': true, - 'aria-required': true, - 'aria-selected': true, - 'aria-setsize': true, - 'aria-valuemax': true, - 'aria-valuemin': true, - 'aria-valuenow': true, - 'aria-valuetext': true, -}; - -export function filterViewProps(propName: string): boolean { - return _viewMask[propName]; -} - -export function filterTextProps(propName: string): boolean { - return _textMask[propName]; -} - -export function filterImageProps(propName: string): boolean { - return _imageMask[propName]; -} diff --git a/packages/utils/adapters/src/adapters.windows.ts b/packages/utils/adapters/src/adapters.windows.ts deleted file mode 100644 index d0f89ed068..0000000000 --- a/packages/utils/adapters/src/adapters.windows.ts +++ /dev/null @@ -1,268 +0,0 @@ -import type { ImageProps, TextProps, ViewProps } from 'react-native-windows'; - -import type { IFilterMask } from './filter.types'; - -// export core interface types -export type ITextProps = TextProps; -export type IViewProps = ViewProps; -export type IImageProps = ImageProps; - -const _viewMask: IFilterMask = { - children: true, - accessibilityActions: true, - accessibilityElementsHidden: true, - accessibilityHint: true, - accessibilityIgnoresInvertColors: true, - accessibilityLabel: true, - accessibilityLabelledBy: true, - accessibilityLanguage: true, - accessibilityLevel: true, - accessibilityLiveRegion: true, - accessibilityPosInSet: true, - accessibilityRole: true, - accessibilitySetSize: true, - accessibilityState: true, - accessibilityValue: true, - accessibilityViewIsModal: true, - accessible: true, - collapsable: true, - enableFocusRing: true, - focusable: true, - hasTVPreferredFocus: true, - hitSlop: true, - id: true, - importantForAccessibility: true, - isTVSelectable: true, - keyDownEvents: true, - keyUpEvents: true, - nativeID: true, - needsOffscreenAlphaCompositing: true, - onAccessibilityAction: true, - onAccessibilityEscape: true, - onAccessibilityTap: true, - onKeyDown: true, - onKeyDownCapture: true, - onKeyUp: true, - onKeyUpCapture: true, - onLayout: true, - onMagicTap: true, - onMouseEnter: true, - onMouseLeave: true, - onMoveShouldSetResponder: true, - onMoveShouldSetResponderCapture: true, - onPointerCancel: true, - onPointerCancelCapture: true, - onPointerDown: true, - onPointerDownCapture: true, - onPointerEnter: true, - onPointerEnterCapture: true, - onPointerLeave: true, - onPointerLeaveCapture: true, - onPointerMove: true, - onPointerMoveCapture: true, - onPointerUp: true, - onPointerUpCapture: true, - onResponderEnd: true, - onResponderGrant: true, - onResponderMove: true, - onResponderReject: true, - onResponderRelease: true, - onResponderStart: true, - onResponderTerminate: true, - onResponderTerminationRequest: true, - onStartShouldSetResponder: true, - onStartShouldSetResponderCapture: true, - onTouchCancel: true, - onTouchEnd: true, - onTouchEndCapture: true, - onTouchMove: true, - onTouchStart: true, - pointerEvents: true, - removeClippedSubviews: true, - renderToHardwareTextureAndroid: true, - role: true, - shouldRasterizeIOS: true, - style: true, - tabIndex: true, - testID: true, - tooltip: true, - tvParallaxMagnification: true, - tvParallaxProperties: true, - tvParallaxShiftDistanceX: true, - tvParallaxShiftDistanceY: true, - tvParallaxTiltAngle: true, - 'aria-busy': true, - 'aria-checked': true, - 'aria-disabled': true, - 'aria-expanded': true, - 'aria-hidden': true, - 'aria-label': true, - 'aria-labelledby': true, - 'aria-level': true, - 'aria-live': true, - 'aria-modal': true, - 'aria-posinset': true, - 'aria-selected': true, - 'aria-setsize': true, - 'aria-valuemax': true, - 'aria-valuemin': true, - 'aria-valuenow': true, - 'aria-valuetext': true, -}; - -const _textMask: IFilterMask = { - accessibilityActions: true, - accessibilityElementsHidden: true, - accessibilityHint: true, - accessibilityIgnoresInvertColors: true, - accessibilityLabel: true, - accessibilityLabelledBy: true, - accessibilityLanguage: true, - accessibilityLevel: true, - accessibilityLiveRegion: true, - accessibilityPosInSet: true, - accessibilityRole: true, - accessibilitySetSize: true, - accessibilityState: true, - accessibilityValue: true, - accessibilityViewIsModal: true, - accessible: true, - adjustsFontSizeToFit: true, - allowFontScaling: true, - android_hyphenationFrequency: true, - children: true, - dataDetectorType: true, - disabled: true, - dynamicTypeRamp: false, - ellipsizeMode: true, - id: true, - importantForAccessibility: true, - lineBreakMode: true, - lineBreakStrategyIOS: true, - maxFontSizeMultiplier: true, - minimumFontScale: true, - nativeID: true, - numberOfLines: true, - onAccessibilityAction: true, - onAccessibilityEscape: true, - onAccessibilityTap: true, - onLayout: true, - onLongPress: true, - onMagicTap: true, - onPress: true, - onPressIn: true, - onPressOut: true, - onTextLayout: true, - role: true, - selectable: true, - selectionColor: true, - style: true, - suppressHighlighting: true, - testID: true, - textBreakStrategy: true, - 'aria-busy': true, - 'aria-checked': true, - 'aria-disabled': true, - 'aria-expanded': true, - 'aria-hidden': true, - 'aria-label': true, - 'aria-labelledby': true, - 'aria-level': true, - 'aria-live': true, - 'aria-modal': true, - 'aria-posinset': true, - 'aria-selected': true, - 'aria-setsize': true, - 'aria-valuemax': true, - 'aria-valuemin': true, - 'aria-valuenow': true, - 'aria-valuetext': true, -}; - -const _imageMask: IFilterMask = { - children: true, - accessibilityActions: true, - accessibilityElementsHidden: true, - accessibilityHint: true, - accessibilityIgnoresInvertColors: true, - accessibilityLabel: true, - accessibilityLabelledBy: true, - accessibilityLanguage: true, - accessibilityLevel: true, - accessibilityLiveRegion: true, - accessibilityPosInSet: true, - accessibilityRole: true, - accessibilitySetSize: true, - accessibilityState: true, - accessibilityValue: true, - accessibilityViewIsModal: true, - accessible: true, - alt: true, - blurRadius: true, - borderBottomLeftRadius: true, - borderBottomRightRadius: true, - borderRadius: true, - borderTopLeftRadius: true, - borderTopRightRadius: true, - capInsets: true, - crossOrigin: true, - defaultSource: true, - fadeDuration: true, - height: true, - id: true, - importantForAccessibility: true, - loadingIndicatorSource: true, - nativeID: true, - onAccessibilityAction: true, - onAccessibilityEscape: true, - onAccessibilityTap: true, - onError: true, - onLayout: true, - onLoad: true, - onLoadEnd: true, - onLoadStart: true, - onMagicTap: true, - onPartialLoad: true, - onProgress: true, - progressiveRenderingEnabled: true, - referrerPolicy: true, - resizeMethod: true, - resizeMode: true, - role: true, - source: true, - src: true, - srcSet: true, - style: true, - testID: true, - tintColor: true, - width: true, - 'aria-busy': true, - 'aria-checked': true, - 'aria-disabled': true, - 'aria-expanded': true, - 'aria-hidden': true, - 'aria-label': true, - 'aria-labelledby': true, - 'aria-level': true, - 'aria-live': true, - 'aria-modal': true, - 'aria-posinset': true, - 'aria-selected': true, - 'aria-setsize': true, - 'aria-valuemax': true, - 'aria-valuemin': true, - 'aria-valuenow': true, - 'aria-valuetext': true, -}; - -export function filterViewProps(propName: string): boolean { - return _viewMask[propName]; -} - -export function filterTextProps(propName: string): boolean { - return _textMask[propName]; -} - -export function filterImageProps(propName: string): boolean { - return _imageMask[propName]; -} diff --git a/packages/utils/adapters/src/imageProps.ts b/packages/utils/adapters/src/imageProps.ts new file mode 100644 index 0000000000..7d2770872f --- /dev/null +++ b/packages/utils/adapters/src/imageProps.ts @@ -0,0 +1,23 @@ +import type { ImageProps, ImageStyle, StyleProp } from 'react-native'; +import type { ImageProps as ImagePropsWindows, ImageStyle as ImageStyleWindows } from 'react-native-windows'; +import type { ImageProps as ImagePropsMacOS, ImageStyle as ImageStyleMacOS } from 'react-native-macos'; +import type { ImageProps as ImagePropsWin32, ImageStyle as ImageStyleWin32 } from '@office-iss/react-native-win32'; + +/** + * Build up the styles type by combining the base ImageStyle with platform specific extensions, + * omitting any overlapping keys to prevent conflicts. + */ +type ImageStyleWithMacOS = ImageStyle & Omit; +type ImageStyleWithWindows = ImageStyleWithMacOS & Omit; +export type IImageStyle = ImageStyleWithWindows & Omit; + +/** + * Build up the props type by combining the base ImageProps with platform specific extensions, + * omitting any overlapping keys to prevent conflicts and adding in the resolved style type + */ +type ImagePropsWithMacOS = Omit & Omit; +type ImagePropsWithWindows = ImagePropsWithMacOS & Omit; +export type IImageProps = ImagePropsWithWindows & + Omit & { + style?: StyleProp; + }; diff --git a/packages/utils/adapters/src/index.ts b/packages/utils/adapters/src/index.ts index 6ddb9b2e7e..601e62ba1f 100644 --- a/packages/utils/adapters/src/index.ts +++ b/packages/utils/adapters/src/index.ts @@ -1,2 +1,4 @@ export { filterImageProps, filterTextProps, filterViewProps } from './adapters'; -export type { IImageProps, ITextProps, IViewProps } from './adapters'; +export type { ITextProps, ITextStyle } from './textProps'; +export type { IImageProps, IImageStyle } from './imageProps'; +export type { IViewProps, IViewStyle, NativeKeyEvent, KeyEventHandler, HandledKeyEvent } from './viewProps'; diff --git a/packages/utils/adapters/src/textProps.ts b/packages/utils/adapters/src/textProps.ts new file mode 100644 index 0000000000..6a3330f8a3 --- /dev/null +++ b/packages/utils/adapters/src/textProps.ts @@ -0,0 +1,23 @@ +import type { TextProps, TextStyle, StyleProp } from 'react-native'; +import type { TextProps as TextPropsWindows, TextStyle as TextStyleWindows } from 'react-native-windows'; +import type { TextProps as TextPropsMacOS, TextStyle as TextStyleMacOS } from 'react-native-macos'; +import type { TextProps as TextPropsWin32, TextStyle as TextStyleWin32 } from '@office-iss/react-native-win32'; + +/** + * Build up the styles type by combining the base TextStyle with platform specific extensions, + * omitting any overlapping keys to prevent conflicts. + */ +type TextStyleWithMacOS = TextStyle & Omit; +type TextStyleWithWindows = TextStyleWithMacOS & Omit; +export type ITextStyle = TextStyleWithWindows & Omit; + +/** + * Build up the props type by combining the base TextProps with platform specific extensions, + * omitting any overlapping keys to prevent conflicts and adding in the resolved style type + */ +type TextPropsWithMacOS = Omit & Omit; +type TextPropsWithWindows = TextPropsWithMacOS & Omit; +export type ITextProps = TextPropsWithWindows & + Omit & { + style?: StyleProp; + }; diff --git a/packages/utils/adapters/src/viewProps.ts b/packages/utils/adapters/src/viewProps.ts new file mode 100644 index 0000000000..085b2ed285 --- /dev/null +++ b/packages/utils/adapters/src/viewProps.ts @@ -0,0 +1,48 @@ +import type RN from 'react-native'; +import type Windows from 'react-native-windows'; +import type MacOS from 'react-native-macos'; +import type Win32 from '@office-iss/react-native-win32'; +import type { EventPhase } from 'react-native-windows'; + +/** + * Build up the styles type by combining the base ViewStyle with platform specific extensions, + * omitting any overlapping keys to prevent conflicts. + */ + +export type IViewStyle = RN.ViewStyle & Omit; + +/** + * Set up a merged key event to use + */ + +export interface HandledKeyEvent extends MacOS.HandledKeyEvent { + code?: string; + eventPhase?: typeof EventPhase.None | typeof EventPhase.Capturing | typeof EventPhase.AtTarget | typeof EventPhase.Bubbling; +} +export type NativeKeyEvent = RN.NativeSyntheticEvent; +export type KeyEventHandler = (event: NativeKeyEvent) => void; + +// list of props to do special handling for +type ExcludedViewProps = 'style' | 'accessibilityRole' | 'accessibilityState' | 'keyDownEvents' | 'keyUpEvents' | 'onKeyDown' | 'onKeyUp'; +// merge the view props from each platform, defaulting to React Native base props in case of overlap +type MergedViewProps = RN.ViewProps & Omit; + +/** + * The complete set of view props accepted by Fluent UI components with additional cross-platform props added + */ +export interface IViewProps extends Omit { + // annotation for Win32 is the same as windows with one additional optional property + accessibilityAnnotation?: Win32.ViewProps['accessibilityAnnotation']; + // accessible role should union the types, use adapters to fork settings + accessibilityRole?: RN.AccessibilityRole & Windows.AccessibilityRole & Win32.AccessibilityRole & MacOS.AccessibilityRole; + // merge structs for accessibilityState + accessibilityState?: RN.AccessibilityState & Windows.AccessibilityState & Win32.AccessibilityState & MacOS.AccessibilityState; + // keyboard events + onKeyDown?: KeyEventHandler; + onKeyUp?: KeyEventHandler; + keyDownEvents?: HandledKeyEvent[]; + keyUpEvents?: HandledKeyEvent[]; + + // use the combined style type + style?: RN.StyleProp; +} diff --git a/packages/utils/interactive-hooks/package.json b/packages/utils/interactive-hooks/package.json index d9d1f8c0f1..5abbddbb71 100644 --- a/packages/utils/interactive-hooks/package.json +++ b/packages/utils/interactive-hooks/package.json @@ -45,17 +45,20 @@ "@fluentui-react-native/scripts": "workspace:*", "@fluentui-react-native/test-tools": "workspace:*", "@office-iss/react-native-win32": "^0.74.0", - "@react-native/babel-preset": "^0.74.0", - "@react-native/metro-config": "^0.74.0", + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/babel-preset": "^0.81.0", + "@react-native/metro-config": "^0.81.0", "@types/invariant": "^2.2.0", "@types/jest": "^29.0.0", - "@types/react": "~18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0", - "react-test-renderer": "18.2.0" + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/utils/interactive-hooks/src/Pressability/CoreEventTypes.ts b/packages/utils/interactive-hooks/src/Pressability/CoreEventTypes.ts index f30665abe1..3bb0e57373 100644 --- a/packages/utils/interactive-hooks/src/Pressability/CoreEventTypes.ts +++ b/packages/utils/interactive-hooks/src/Pressability/CoreEventTypes.ts @@ -17,6 +17,14 @@ import type * as React from 'react'; import type { HostComponent } from './InternalTypes'; +export type { + BlurEvent, + FocusEvent, + MouseEvent, + LayoutChangeEvent as LayoutEvent, + TextLayoutEvent, + ScrollResponderEvent as ScrollEvent, +} from 'react-native'; export type SyntheticEvent = Readonly<{ bubbles?: boolean; @@ -62,34 +70,6 @@ export type ResponderSyntheticEvent = SyntheticEvent & }>; }>; -export type Layout = Readonly<{ - x: number; - y: number; - width: number; - height: number; -}>; - -export type TextLayout = Layout & - Readonly<{ - ascender: number; - capHeight: number; - descender: number; - text: string; - xHeight: number; - }>; - -export type LayoutEvent = SyntheticEvent< - Readonly<{ - layout: Layout; - }> ->; - -export type TextLayoutEvent = SyntheticEvent< - Readonly<{ - lines: Array; - }> ->; - export type PressEvent = ResponderSyntheticEvent< Readonly<{ changedTouches: ReadonlyArray; @@ -105,61 +85,6 @@ export type PressEvent = ResponderSyntheticEvent< }> >; -export type ScrollEvent = SyntheticEvent< - Readonly<{ - contentInset: Readonly<{ - bottom: number; - left: number; - right: number; - top: number; - }>; - contentOffset: Readonly<{ - y: number; - x: number; - }>; - contentSize: Readonly<{ - height: number; - width: number; - }>; - layoutMeasurement: Readonly<{ - height: number; - width: number; - }>; - targetContentOffset?: Readonly<{ - y: number; - x: number; - }>; - velocity?: Readonly<{ - y: number; - x: number; - }>; - zoomScale?: number; - responderIgnoreScroll?: boolean; - }> ->; - -export type BlurEvent = SyntheticEvent< - Readonly<{ - target: number; - }> ->; - -export type FocusEvent = SyntheticEvent< - Readonly<{ - target: number; - }> ->; - -export type MouseEvent = SyntheticEvent< - Readonly<{ - clientX: number; - clientY: number; - pageX: number; - pageY: number; - timestamp: number; - }> ->; - export type KeyPressEvent = SyntheticEvent< Readonly<{ key: string; diff --git a/packages/utils/interactive-hooks/src/index.ts b/packages/utils/interactive-hooks/src/index.ts index 430dfed6a3..3da476cba0 100644 --- a/packages/utils/interactive-hooks/src/index.ts +++ b/packages/utils/interactive-hooks/src/index.ts @@ -47,14 +47,12 @@ export type { export type { BlurEvent, FocusEvent, - Layout, LayoutEvent, MouseEvent, PressEvent, ResponderSyntheticEvent, ScrollEvent, SyntheticEvent, - TextLayout, TextLayoutEvent, } from './Pressability/CoreEventTypes'; export type { KeyPressEvent, KeyCallback, KeyPressProps } from './useKeyProps.types'; diff --git a/packages/utils/interactive-hooks/src/useKeyProps.types.macos.ts b/packages/utils/interactive-hooks/src/useKeyProps.types.macos.ts deleted file mode 100644 index c4eea13373..0000000000 --- a/packages/utils/interactive-hooks/src/useKeyProps.types.macos.ts +++ /dev/null @@ -1,31 +0,0 @@ -import type { NativeSyntheticEvent } from 'react-native'; - -// React Native macOS doesn't have typescript types yet, so define the type here. -interface NativeKeyEvent { - // Modifier keys - capsLockKey: boolean; - shiftKey: boolean; - ctrlKey: boolean; - altKey: boolean; - metaKey: boolean; - numericPadKey: boolean; - helpKey: boolean; - functionKey: boolean; - // Key options - ArrowLeft: boolean; - ArrowRight: boolean; - ArrowUp: boolean; - ArrowDown: boolean; - key: string; -} - -export type KeyPressEvent = NativeSyntheticEvent; - -export type KeyCallback = (e?: KeyPressEvent) => void; - -export type KeyPressProps = { - onKeyDown?: KeyCallback; - validKeysDown?: string[]; - onKeyUp?: KeyCallback; - validKeysUp?: string[]; -}; diff --git a/packages/utils/interactive-hooks/src/useKeyProps.types.ts b/packages/utils/interactive-hooks/src/useKeyProps.types.ts index 42c780d9d3..af309afeec 100644 --- a/packages/utils/interactive-hooks/src/useKeyProps.types.ts +++ b/packages/utils/interactive-hooks/src/useKeyProps.types.ts @@ -1,14 +1,11 @@ -import type { NativeSyntheticEvent } from 'react-native'; - -export type KeyPressEvent = NativeSyntheticEvent; - -export type KeyCallback = (e: KeyPressEvent) => void; +import type { KeyEventHandler } from '@fluentui-react-native/adapters'; +export type { KeyEventHandler as KeyCallback, NativeKeyEvent as KeyPressEvent } from '@fluentui-react-native/adapters'; export type KeyPressProps = { - onKeyDown?: KeyCallback; + onKeyDown?: KeyEventHandler; validKeysDown?: string[]; // macOS keyDownEvents?: any[]; // windows - onKeyUp?: KeyCallback; + onKeyUp?: KeyEventHandler; validKeysUp?: string[]; // macOS keyUpEvents?: any[]; // windows }; diff --git a/packages/utils/interactive-hooks/src/useKeyProps.types.win32.ts b/packages/utils/interactive-hooks/src/useKeyProps.types.win32.ts deleted file mode 100644 index 512b45ae1b..0000000000 --- a/packages/utils/interactive-hooks/src/useKeyProps.types.win32.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { IKeyboardEvent, IHandledKeyboardEvent } from '@office-iss/react-native-win32'; - -export type KeyPressEvent = IKeyboardEvent; - -export type KeyCallback = (e?: KeyPressEvent) => void; - -export type KeyPressProps = { - onKeyDown?: KeyCallback; - keyDownEvents?: IHandledKeyboardEvent[]; // win32 - onKeyUp?: KeyCallback; - keyUpEvents?: IHandledKeyboardEvent[]; // win32 -}; diff --git a/packages/utils/interactive-hooks/src/useKeyProps.types.windows.ts b/packages/utils/interactive-hooks/src/useKeyProps.types.windows.ts deleted file mode 100644 index be53c98b99..0000000000 --- a/packages/utils/interactive-hooks/src/useKeyProps.types.windows.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { IKeyboardEvent, IHandledKeyboardEvent } from 'react-native-windows'; - -export type KeyPressEvent = IKeyboardEvent; - -export type KeyCallback = (e?: KeyPressEvent) => void; - -export type KeyPressProps = { - onKeyDown?: KeyCallback; - keyDownEvents?: IHandledKeyboardEvent[]; // Windows - onKeyUp?: KeyCallback; - keyUpEvents?: IHandledKeyboardEvent[]; // Windows -}; diff --git a/packages/utils/styling/package.json b/packages/utils/styling/package.json index 7fe8d4aa2f..c579503246 100644 --- a/packages/utils/styling/package.json +++ b/packages/utils/styling/package.json @@ -37,10 +37,13 @@ "@fluentui-react-native/eslint-config-rules": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0" }, "peerDependencies": { "react": "18.2.0 || 19.0.0 || 19.1.0", diff --git a/packages/utils/test-tools/package.json b/packages/utils/test-tools/package.json index b49bd39c45..77acc2d048 100644 --- a/packages/utils/test-tools/package.json +++ b/packages/utils/test-tools/package.json @@ -41,7 +41,7 @@ "@fluentui-react-native/jest-config": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/babel-preset": "^0.74.0", + "@react-native/babel-preset": "^0.81.0", "@types/jest": "^29.0.0", "@types/react": "^18.2.0", "@types/react-test-renderer": "^18.2.0", diff --git a/packages/utils/tokens/package.json b/packages/utils/tokens/package.json index 0e33cee3c3..2e0403bf79 100644 --- a/packages/utils/tokens/package.json +++ b/packages/utils/tokens/package.json @@ -41,12 +41,15 @@ "@fluentui-react-native/eslint-config-rules": "workspace:*", "@fluentui-react-native/kit-config": "workspace:*", "@fluentui-react-native/scripts": "workspace:*", - "@react-native/metro-config": "^0.74.0", - "@types/react": "~18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-native-macos": "^0.74.0", - "react-native-windows": "^0.74.0" + "@react-native-community/cli": "^20.0.0", + "@react-native-community/cli-platform-android": "^20.0.0", + "@react-native-community/cli-platform-ios": "^20.0.0", + "@react-native/metro-config": "^0.81.0", + "@types/react": "~19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-native-macos": "^0.81.0", + "react-native-windows": "^0.81.0" }, "peerDependencies": { "@office-iss/react-native-win32": "^0.74.0", diff --git a/packages/utils/tokens/src/border-tokens.ts b/packages/utils/tokens/src/border-tokens.ts index 82c8914377..008f133427 100644 --- a/packages/utils/tokens/src/border-tokens.ts +++ b/packages/utils/tokens/src/border-tokens.ts @@ -9,7 +9,7 @@ import { tokenBuilder } from './tokenBuilder'; export interface IBorderTokens { borderColor?: ColorValue; borderWidth?: number; - borderRadius?: AnimatableNumericValue; + borderRadius?: AnimatableNumericValue | string; borderStyle?: ViewStyle['borderStyle']; } @@ -20,4 +20,4 @@ export const borderTokens: OperationSet = [ { source: 'borderStyle' }, ]; -export const borderStyles = tokenBuilder('borderColor', 'borderRadius', 'borderStyle', 'borderWidth'); +export const borderStyles = tokenBuilder('borderColor', 'borderRadius', 'borderStyle', 'borderWidth'); diff --git a/packages/utils/tokens/src/layout-tokens.ts b/packages/utils/tokens/src/layout-tokens.ts index 05ac363c29..629dc0a2b0 100644 --- a/packages/utils/tokens/src/layout-tokens.ts +++ b/packages/utils/tokens/src/layout-tokens.ts @@ -33,7 +33,7 @@ export const layoutTokens: OperationSet = [ { source: 'paddingEnd' }, ]; -export const layoutStyles = tokenBuilder( +export const layoutStyles = tokenBuilder( 'width', 'height', 'minWidth', diff --git a/packages/utils/tokens/src/shadow-tokens.ts b/packages/utils/tokens/src/shadow-tokens.ts index 6d712a4a99..f48365adbd 100644 --- a/packages/utils/tokens/src/shadow-tokens.ts +++ b/packages/utils/tokens/src/shadow-tokens.ts @@ -1,4 +1,4 @@ -import type { ColorValue } from 'react-native'; +import type { AnimatableNumericValue, ColorValue, ViewStyle } from 'react-native'; import type { Theme } from '@fluentui-react-native/theme-types'; @@ -12,7 +12,7 @@ export interface IShadowTokens { height: number; }; shadowOpacity?: number; - shadowRadius?: number; + shadowRadius?: AnimatableNumericValue | string; elevation?: number; } @@ -24,4 +24,10 @@ export const shadowTokens: OperationSet = [ { source: 'elevation' }, ]; -export const shadowStyles = tokenBuilder('shadowColor', 'shadowOffset', 'shadowOpacity', 'shadowRadius'); +export const shadowStyles = tokenBuilder( + 'shadowColor', + 'shadowOffset', + 'shadowOpacity', + 'shadowRadius', + 'elevation', +); diff --git a/packages/utils/tokens/src/text-tokens.ts b/packages/utils/tokens/src/text-tokens.ts index 784a912587..459b5e4242 100644 --- a/packages/utils/tokens/src/text-tokens.ts +++ b/packages/utils/tokens/src/text-tokens.ts @@ -1,6 +1,6 @@ import type { TextProps, TextStyle } from 'react-native'; -import type { ITextProps } from '@fluentui-react-native/adapters'; +import type { ITextProps, ITextStyle } from '@fluentui-react-native/adapters'; import type { Theme, Typography } from '@fluentui-react-native/theme-types'; import { styleFunction } from './token.function'; @@ -28,7 +28,7 @@ export interface FontDecorationTokens { export type FontTokens = FontStyleTokens & FontVariantTokens & FontDecorationTokens; -export const fontStyles: TokenBuilder = { +export const fontStyles: TokenBuilder = { from: ( { fontDynamicTypeRamp, diff --git a/packages/utils/tokens/src/tokenBuilder.ts b/packages/utils/tokens/src/tokenBuilder.ts index 841d331f91..5c3af8919f 100644 --- a/packages/utils/tokens/src/tokenBuilder.ts +++ b/packages/utils/tokens/src/tokenBuilder.ts @@ -2,19 +2,22 @@ import type { ViewStyle, TextStyle, ImageStyle } from 'react-native'; import type { Theme } from '@fluentui-react-native/theme-types'; -export type TokenBuilder = { - from: (tokens: TTokens, theme: Theme) => ViewStyle | TextStyle | ImageStyle; +export type TokenBuilder = { + from: (tokens: TTokens, theme: Theme) => TStyle; keys: (keyof TTokens)[]; }; -export function tokenBuilder(...keys: (keyof TTokens)[]): TokenBuilder { - const from = (tokens: TTokens) => { - const style = {}; - keys - .filter((key) => tokens[key] !== undefined) - .forEach((key) => { - style[key as string] = tokens[key]; - }); +export function tokenBuilder( + ...keys: (keyof TTokens)[] +): TokenBuilder { + const from = (tokens: TTokens, _theme: Theme): TStyle => { + const style = {} as TStyle; + for (const key of keys) { + const value = tokens[key]; + if (value !== undefined) { + style[key as string] = value; + } + } return style; }; return { from, keys }; diff --git a/yarn.lock b/yarn.lock index d9e20506d5..d68018e11d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2415,14 +2415,17 @@ __metadata: "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/react-configs": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" - "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" + "@office-iss/react-native-win32": "npm:^0.81.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/metro-config": "npm:^0.81.0" "@types/jest": "npm:^29.0.0" - "@types/react": "npm:~18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" + "@types/react": "npm:~19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" peerDependencies: "@office-iss/react-native-win32": ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -2454,13 +2457,16 @@ __metadata: "@fluentui-react-native/theme-tokens": "workspace:*" "@fluentui-react-native/theme-types": "workspace:*" "@fluentui-react-native/theming-utils": "workspace:*" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -2496,14 +2502,17 @@ __metadata: "@fluentui-react-native/theme-tokens": "workspace:*" "@fluentui-react-native/theme-types": "workspace:*" "@fluentui-react-native/theming-utils": "workspace:*" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" assert-never: "npm:^1.2.1" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -2540,16 +2549,19 @@ __metadata: "@fluentui-react-native/tokens": "workspace:*" "@fluentui-react-native/use-styling": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" unicode-segmenter: "npm:^0.14.4" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 @@ -2612,16 +2624,19 @@ __metadata: "@fluentui-react-native/tokens": "workspace:*" "@fluentui-react-native/use-styling": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -2666,19 +2681,22 @@ __metadata: "@fluentui-react-native/tokens": "workspace:*" "@fluentui-react-native/use-styling": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" "@uifabricshared/foundation-composable": "workspace:*" "@uifabricshared/foundation-compose": "workspace:*" "@uifabricshared/foundation-settings": "workspace:*" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -2709,18 +2727,21 @@ __metadata: "@fluentui-react-native/scripts": "workspace:*" "@fluentui-react-native/tokens": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" "@uifabricshared/foundation-composable": "workspace:*" "@uifabricshared/foundation-compose": "workspace:*" "@uifabricshared/foundation-settings": "workspace:*" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -2760,19 +2781,22 @@ __metadata: "@fluentui-react-native/tokens": "workspace:*" "@fluentui-react-native/use-styling": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" "@uifabricshared/foundation-composable": "workspace:*" "@uifabricshared/foundation-compose": "workspace:*" "@uifabricshared/foundation-settings": "workspace:*" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -2811,16 +2835,19 @@ __metadata: "@fluentui-react-native/tokens": "workspace:*" "@fluentui-react-native/use-styling": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -2871,12 +2898,12 @@ __metadata: "@fluentui-react-native/scripts": "workspace:*" "@fluentui-react-native/use-slots": "workspace:*" "@fluentui-react-native/use-styling": "workspace:*" - "@react-native/babel-preset": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: react: 18.2.0 || 19.0.0 || 19.1.0 languageName: unknown @@ -2902,22 +2929,25 @@ __metadata: "@fluentui-react-native/text": "workspace:*" "@fluentui-react-native/tokens": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" "@react-native/metro-babel-transformer": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" "@uifabricshared/foundation-composable": "workspace:*" "@uifabricshared/foundation-compose": "workspace:*" "@uifabricshared/foundation-settings": "workspace:*" metro-config: "npm:^0.80.3" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" react-native-svg-transformer: "npm:^1.0.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -2951,14 +2981,17 @@ __metadata: "@fluentui-react-native/theme-types": "workspace:*" "@fluentui-react-native/theming-utils": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" assert-never: "npm:^1.2.1" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -3116,16 +3149,19 @@ __metadata: "@fluentui-react-native/theme-tokens": "workspace:*" "@fluentui-react-native/tokens": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -3158,24 +3194,27 @@ __metadata: "@fluentui-react-native/scripts": "workspace:*" "@fluentui-react-native/theme-tokens": "workspace:*" "@fluentui-react-native/use-styling": "workspace:*" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" - peerDependencies: - "@office-iss/react-native-win32": ^0.74.0 - react: 18.2.0 || 19.0.0 || 19.1.0 - react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 - react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 - react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 - peerDependenciesMeta: - "@office-iss/react-native-win32": - optional: true + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" + peerDependencies: + "@office-iss/react-native-win32": ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-macos: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + react-native-windows: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 + peerDependenciesMeta: + "@office-iss/react-native-win32": + optional: true react-native-macos: optional: true react-native-windows: @@ -3201,14 +3240,17 @@ __metadata: "@fluentui-react-native/test-tools": "workspace:*" "@fluentui-react-native/text": "workspace:*" "@fluentui-react-native/theme-tokens": "workspace:*" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" - react-native-windows: "npm:^0.74.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" + react-native-windows: "npm:^0.81.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -3236,13 +3278,13 @@ __metadata: "@fluentui-react-native/focus-zone": "workspace:*" "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" - "@office-iss/react-native-win32": "npm:^0.74.0" + "@office-iss/react-native-win32": "npm:^0.81.0" "@office-iss/rex-win32": "npm:0.73.11-devmain.16.0.17615.15030" - "@react-native/metro-babel-transformer": "npm:^0.74.0" + "@react-native/metro-babel-transformer": "npm:^0.81.0" "@rnx-kit/metro-config": "catalog:" "@types/jasmine": "catalog:" "@types/node": "catalog:" - "@types/react": "npm:~18.2.0" + "@types/react": "npm:~19.1.0" "@wdio/appium-service": "catalog:" "@wdio/cli": "catalog:" "@wdio/globals": "catalog:" @@ -3260,10 +3302,10 @@ __metadata: cross-env: "catalog:" expect-webdriverio: "catalog:" metro-config: "npm:^0.80.3" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" rimraf: "catalog:" ts-node: "npm:^10.7.0" webdriverio: "catalog:" @@ -3307,15 +3349,18 @@ __metadata: "@fluentui-react-native/framework-base": "workspace:*" "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" assert-never: "npm:^1.2.1" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" - react-native-windows: "npm:^0.74.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" + react-native-windows: "npm:^0.81.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -3343,13 +3388,16 @@ __metadata: "@fluentui-react-native/framework": "workspace:*" "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" "@types/use-subscription": "npm:^1.0.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" use-subscription: "npm:^1.11.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 @@ -3378,14 +3426,17 @@ __metadata: "@fluentui-react-native/framework-base": "workspace:*" "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -3415,14 +3466,17 @@ __metadata: "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" - react-native-windows: "npm:^0.74.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" + react-native-windows: "npm:^0.81.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -3451,12 +3505,15 @@ __metadata: "@fluentui-react-native/framework-base": "workspace:*" "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -3489,16 +3546,19 @@ __metadata: "@fluentui-react-native/scripts": "workspace:*" "@fluentui-react-native/tokens": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -3525,10 +3585,13 @@ __metadata: "@fluentui-react-native/eslint-config-rules": "workspace:*" "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" peerDependencies: react: 18.2.0 || 19.0.0 || 19.1.0 react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 @@ -3544,11 +3607,14 @@ __metadata: "@fluentui-react-native/eslint-config-rules": "workspace:*" "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" "@types/use-subscription": "npm:^1.0.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" use-subscription: "npm:^1.11.0" peerDependencies: react: 18.2.0 || 19.0.0 || 19.1.0 @@ -3571,15 +3637,18 @@ __metadata: "@fluentui-react-native/scripts": "workspace:*" "@fluentui-react-native/test-tools": "workspace:*" "@fluentui-react-native/theme-types": "workspace:*" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -3611,17 +3680,20 @@ __metadata: "@fluentui-react-native/theming-utils": "workspace:*" "@fluentui-react-native/tokens": "workspace:*" "@fluentui-react-native/use-styling": "workspace:*" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" assert-never: "npm:^1.2.1" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -3653,14 +3725,17 @@ __metadata: "@fluentui-react-native/scripts": "workspace:*" "@fluentui-react-native/text": "workspace:*" "@fluentui-react-native/tokens": "workspace:*" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" tslib: "npm:^2.3.1" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 @@ -3691,17 +3766,20 @@ __metadata: "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" "@uifabricshared/foundation-composable": "workspace:*" "@uifabricshared/foundation-settings": "workspace:*" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -3731,18 +3809,21 @@ __metadata: "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-babel-transformer": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-babel-transformer": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" "@uifabricshared/foundation-composable": "workspace:*" "@uifabricshared/foundation-settings": "workspace:*" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -3770,8 +3851,8 @@ __metadata: "@fluentui-react-native/scripts": "workspace:*" "@types/jest": "npm:^29.0.0" "@types/node": "catalog:" - "@types/react": "npm:~18.2.0" - react: "npm:18.2.0" + "@types/react": "npm:~19.1.0" + react: "npm:19.1.0" peerDependencies: react: 18.2.0 || 19.0.0 || 19.1.0 languageName: unknown @@ -3796,16 +3877,19 @@ __metadata: "@fluentui-react-native/use-slots": "workspace:*" "@fluentui-react-native/use-styling": "workspace:*" "@fluentui-react-native/use-tokens": "workspace:*" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" "@rnx-kit/cli": "catalog:" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -3838,16 +3922,19 @@ __metadata: "@fluentui-react-native/test-tools": "workspace:*" "@fluentui-react-native/text": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -3874,8 +3961,8 @@ __metadata: "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" "@types/node": "catalog:" - "@types/react": "npm:~18.2.0" - react: "npm:18.2.0" + "@types/react": "npm:~19.1.0" + react: "npm:19.1.0" peerDependencies: react: 18.2.0 || 19.0.0 || 19.1.0 peerDependenciesMeta: @@ -3904,16 +3991,19 @@ __metadata: "@fluentui-react-native/theme-tokens": "workspace:*" "@fluentui-react-native/tokens": "workspace:*" "@fluentui-react-native/use-styling": "workspace:*" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -3945,18 +4035,21 @@ __metadata: "@fluentui-react-native/scripts": "workspace:*" "@fluentui-react-native/test-tools": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" "@types/invariant": "npm:^2.2.0" "@types/jest": "npm:^29.0.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" invariant: "npm:^2.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -3982,7 +4075,7 @@ __metadata: "@fluentui-react-native/eslint-config-rules": "workspace:*" "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" - "@react-native/babel-preset": "npm:^0.74.0" + "@react-native/babel-preset": "npm:^0.81.0" "@rnx-kit/jest-preset": "catalog:" "@types/node": "catalog:" babel-jest: "npm:^29.0.0" @@ -4018,20 +4111,23 @@ __metadata: "@fluentui-react-native/scripts": "workspace:*" "@fluentui-react-native/test-tools": "workspace:*" "@fluentui-react-native/text": "workspace:*" - "@fluentui-react-native/tokens": "workspace:*" - "@fluentui-react-native/use-styling": "workspace:*" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" + "@fluentui-react-native/tokens": "workspace:*" + "@fluentui-react-native/use-styling": "workspace:*" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" "@uifabricshared/foundation-composable": "workspace:*" "@uifabricshared/foundation-compose": "workspace:*" "@uifabricshared/foundation-settings": "workspace:*" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -4057,8 +4153,8 @@ __metadata: "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" "@types/node": "catalog:" - "@types/react": "npm:~18.2.0" - react: "npm:18.2.0" + "@types/react": "npm:~19.1.0" + react: "npm:19.1.0" tslib: "npm:^2.3.1" peerDependencies: react: 18.2.0 || 19.0.0 || 19.1.0 @@ -4084,19 +4180,22 @@ __metadata: "@fluentui-react-native/scripts": "workspace:*" "@fluentui-react-native/tokens": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" "@uifabricshared/foundation-composable": "workspace:*" "@uifabricshared/foundation-compose": "workspace:*" "@uifabricshared/foundation-settings": "workspace:*" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -4139,17 +4238,20 @@ __metadata: "@fluentui-react-native/tokens": "workspace:*" "@fluentui-react-native/use-styling": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" "@types/node": "catalog:" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -4175,8 +4277,8 @@ __metadata: "@fluentui-react-native/framework-base": "workspace:*" "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" - "@types/react": "npm:~18.2.0" - react: "npm:18.2.0" + "@types/react": "npm:~19.1.0" + react: "npm:19.1.0" peerDependencies: react: 18.2.0 || 19.0.0 || 19.1.0 peerDependenciesMeta: @@ -4211,16 +4313,19 @@ __metadata: "@fluentui-react-native/tokens": "workspace:*" "@fluentui-react-native/use-styling": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -4254,15 +4359,15 @@ __metadata: "@fluentui-react-native/scripts": "workspace:*" "@fluentui-react-native/test-tools": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -4295,16 +4400,19 @@ __metadata: "@fluentui-react-native/theme-tokens": "workspace:*" "@fluentui-react-native/tokens": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" "@uifabricshared/foundation-composable": "workspace:*" "@uifabricshared/foundation-compose": "workspace:*" "@uifabricshared/foundation-settings": "workspace:*" "@uifabricshared/foundation-tokens": "workspace:*" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -4335,16 +4443,19 @@ __metadata: "@fluentui-react-native/persona-coin": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" "@fluentui-react-native/tokens": "workspace:*" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" "@uifabricshared/foundation-composable": "workspace:*" "@uifabricshared/foundation-compose": "workspace:*" "@uifabricshared/foundation-settings": "workspace:*" "@uifabricshared/foundation-tokens": "workspace:*" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -4373,12 +4484,15 @@ __metadata: "@fluentui-react-native/framework-base": "workspace:*" "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -4406,14 +4520,17 @@ __metadata: "@fluentui-react-native/interactive-hooks": "workspace:*" "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" "@uifabricshared/foundation-composable": "workspace:*" "@uifabricshared/foundation-settings": "workspace:*" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -4452,19 +4569,22 @@ __metadata: "@fluentui-react-native/tokens": "workspace:*" "@fluentui-react-native/use-styling": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" "@uifabricshared/foundation-composable": "workspace:*" "@uifabricshared/foundation-compose": "workspace:*" "@uifabricshared/foundation-settings": "workspace:*" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -4573,15 +4693,18 @@ __metadata: "@fluentui-react-native/theme-tokens": "workspace:*" "@fluentui-react-native/use-styling": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -4612,14 +4735,17 @@ __metadata: "@fluentui-react-native/text": "workspace:*" "@fluentui-react-native/theme-tokens": "workspace:*" "@fluentui-react-native/use-styling": "workspace:*" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" - react-native-windows: "npm:^0.74.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" + react-native-windows: "npm:^0.81.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -4652,19 +4778,22 @@ __metadata: "@fluentui-react-native/scripts": "workspace:*" "@fluentui-react-native/text": "workspace:*" "@fluentui-react-native/tokens": "workspace:*" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" "@uifabricshared/foundation-composable": "workspace:*" "@uifabricshared/foundation-compose": "workspace:*" "@uifabricshared/foundation-settings": "workspace:*" "@uifabricshared/foundation-tokens": "workspace:*" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -4690,10 +4819,13 @@ __metadata: "@fluentui-react-native/eslint-config-rules": "workspace:*" "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" peerDependencies: react: 18.2.0 || 19.0.0 || 19.1.0 react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 @@ -4714,21 +4846,24 @@ __metadata: "@fluentui-react-native/jest-config": "workspace:*" "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" - "@fluentui-react-native/test-tools": "workspace:*" - "@fluentui-react-native/text": "workspace:*" - "@fluentui-react-native/theming-utils": "workspace:*" - "@fluentui-react-native/tokens": "workspace:*" - "@fluentui-react-native/use-styling": "workspace:*" - "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@fluentui-react-native/test-tools": "workspace:*" + "@fluentui-react-native/text": "workspace:*" + "@fluentui-react-native/theming-utils": "workspace:*" + "@fluentui-react-native/tokens": "workspace:*" + "@fluentui-react-native/use-styling": "workspace:*" + "@office-iss/react-native-win32": "npm:^0.74.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -4767,16 +4902,19 @@ __metadata: "@fluentui-react-native/tokens": "workspace:*" "@fluentui-react-native/use-styling": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -4805,7 +4943,7 @@ __metadata: "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" "@fluentui-react-native/theme-types": "workspace:*" - "@react-native/babel-preset": "npm:^0.74.0" + "@react-native/babel-preset": "npm:^0.81.0" "@types/jest": "npm:^29.0.0" "@types/react": "npm:^18.2.0" "@types/react-test-renderer": "npm:^18.2.0" @@ -4824,6 +4962,7 @@ __metadata: dependencies: "@babel/core": "catalog:" "@babel/runtime": "catalog:" + "@fluentui-react-native/adapters": "workspace:*" "@fluentui-react-native/android-theme": "workspace:*" "@fluentui-react-native/apple-theme": "workspace:*" "@fluentui-react-native/avatar": "workspace:*" @@ -4880,24 +5019,24 @@ __metadata: "@fortawesome/fontawesome-svg-core": "npm:^6.2.0" "@fortawesome/free-solid-svg-icons": "npm:^6.2.0" "@fortawesome/react-native-fontawesome": "npm:^0.3.0" - "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native-community/cli": "npm:^13.6.4" - "@react-native-community/cli-platform-android": "npm:^13.6.4" - "@react-native-community/cli-platform-ios": "npm:^13.6.4" + "@office-iss/react-native-win32": "npm:^0.81.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" "@react-native-community/slider": "npm:^4.5.7" "@react-native-menu/menu": "npm:^0.7.3" "@react-native-picker/picker": "npm:^2.7.0" "@react-native-windows/cli": "npm:^0.74.0" "@react-native/babel-preset": "npm:^0.74.0" "@react-native/metro-babel-transformer": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" + "@react-native/metro-config": "npm:^0.81.0" "@rnx-kit/cli": "catalog:" "@rnx-kit/metro-config": "catalog:" "@rnx-kit/metro-resolver-symlinks": "catalog:" "@types/jasmine": "catalog:" "@types/node": "catalog:" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" "@wdio/cli": "catalog:" "@wdio/globals": "catalog:" "@wdio/jasmine-framework": "catalog:" @@ -4906,14 +5045,14 @@ __metadata: expect-webdriverio: "catalog:" flow-bin: "npm:^0.113.0" metro-config: "npm:^0.80.3" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" react-native-svg-transformer: "npm:^1.0.0" react-native-test-app: "npm:^3.9.2" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" webdriverio: "catalog:" peerDependencies: "@fluentui-react-native/callout": "workspace:*" @@ -5130,16 +5269,19 @@ __metadata: "@fluentui-react-native/test-tools": "workspace:*" "@fluentui-react-native/theme-tokens": "workspace:*" "@fluentui-react-native/tokens": "workspace:*" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" "@uifabricshared/foundation-compose": "workspace:*" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -5170,11 +5312,14 @@ __metadata: "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" "@fluentui-react-native/theme-types": "workspace:*" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" assert-never: "npm:^1.2.1" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" peerDependencies: react: 18.2.0 || 19.0.0 || 19.1.0 react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 @@ -5190,10 +5335,13 @@ __metadata: "@fluentui-react-native/eslint-config-rules": "workspace:*" "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" peerDependencies: react: 18.2.0 || 19.0.0 || 19.1.0 react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 @@ -5213,11 +5361,14 @@ __metadata: "@fluentui-react-native/scripts": "workspace:*" "@fluentui-react-native/test-tools": "workspace:*" "@fluentui-react-native/theme-types": "workspace:*" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" peerDependencies: react: 18.2.0 || 19.0.0 || 19.1.0 react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 @@ -5235,11 +5386,14 @@ __metadata: "@fluentui-react-native/jest-config": "workspace:*" "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" peerDependencies: react: 18.2.0 || 19.0.0 || 19.1.0 react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 @@ -5260,13 +5414,16 @@ __metadata: "@fluentui-react-native/scripts": "workspace:*" "@fluentui-react-native/theme-types": "workspace:*" "@fluentui-react-native/tokens": "workspace:*" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -5294,12 +5451,15 @@ __metadata: "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" "@fluentui-react-native/theme-types": "workspace:*" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -5331,15 +5491,15 @@ __metadata: "@fluentui-react-native/scripts": "workspace:*" "@fluentui-react-native/test-tools": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" - react-native-windows: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" + react-native-windows: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -5368,14 +5528,17 @@ __metadata: "@fluentui-react-native/jest-config": "workspace:*" "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" "@types/jest": "npm:^29.0.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: react: 18.2.0 || 19.0.0 || 19.1.0 languageName: unknown @@ -5393,13 +5556,16 @@ __metadata: "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" "@fluentui-react-native/use-slot": "workspace:*" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: react: 18.2.0 || 19.0.0 || 19.1.0 languageName: unknown @@ -5417,14 +5583,17 @@ __metadata: "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" "@fluentui-react-native/use-tokens": "workspace:*" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" "@types/jest": "npm:^29.0.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: react: 18.2.0 || 19.0.0 || 19.1.0 languageName: unknown @@ -5441,14 +5610,17 @@ __metadata: "@fluentui-react-native/jest-config": "workspace:*" "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" "@types/jest": "npm:^29.0.0" - "@types/react": "npm:~18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: react: 18.2.0 || 19.0.0 || 19.1.0 languageName: unknown @@ -5464,13 +5636,16 @@ __metadata: "@fluentui-react-native/eslint-config-rules": "workspace:*" "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" - "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" + "@office-iss/react-native-win32": "npm:^0.81.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" peerDependencies: "@office-iss/react-native-win32": ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -5505,13 +5680,16 @@ __metadata: "@fluentui-react-native/theme-types": "workspace:*" "@fluentui-react-native/theming-utils": "workspace:*" "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -5566,15 +5744,18 @@ __metadata: "@fluentui-react-native/separator": "workspace:*" "@fluentui-react-native/tablist": "workspace:*" "@fluentui-react-native/text": "workspace:*" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" + "@react-native/metro-config": "npm:^0.81.0" "@rnx-kit/cli": "catalog:" - "@types/react": "npm:~18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-svg: "npm:>=15.4.0 <15.13.0" - react-native-windows: "npm:^0.74.0" + "@types/react": "npm:~19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-svg: "npm:^15.12.1" + react-native-windows: "npm:^0.81.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -6589,6 +6770,55 @@ __metadata: languageName: node linkType: hard +"@microsoft/1ds-core-js@npm:4.3.11, @microsoft/1ds-core-js@npm:^4.3.0": + version: 4.3.11 + resolution: "@microsoft/1ds-core-js@npm:4.3.11" + dependencies: + "@microsoft/applicationinsights-core-js": "npm:3.3.11" + "@microsoft/applicationinsights-shims": "npm:3.0.1" + "@microsoft/dynamicproto-js": "npm:^2.0.3" + "@nevware21/ts-async": "npm:>= 0.5.4 < 2.x" + "@nevware21/ts-utils": "npm:>= 0.11.8 < 2.x" + checksum: 10c0/a6ece343ab6813c8190bef199e9396c0548a6180e6e54884b871376ceac395cb9bbfbe8d03b132bd4e010cf900699803bf4d500a4a8e188363d6cec4396cf98e + languageName: node + linkType: hard + +"@microsoft/1ds-post-js@npm:^4.3.0": + version: 4.3.11 + resolution: "@microsoft/1ds-post-js@npm:4.3.11" + dependencies: + "@microsoft/1ds-core-js": "npm:4.3.11" + "@microsoft/applicationinsights-shims": "npm:3.0.1" + "@microsoft/dynamicproto-js": "npm:^2.0.3" + "@nevware21/ts-async": "npm:>= 0.5.4 < 2.x" + "@nevware21/ts-utils": "npm:>= 0.11.8 < 2.x" + checksum: 10c0/557d6240c27b9413ccd78ce9fa70863147c05fa4ffe8ac4fc316debe560804c41c3a6aed59eb042fdc4864558caaffaf29ed5dc79f543c3d4909b18a8d161aeb + languageName: node + linkType: hard + +"@microsoft/applicationinsights-core-js@npm:3.3.11": + version: 3.3.11 + resolution: "@microsoft/applicationinsights-core-js@npm:3.3.11" + dependencies: + "@microsoft/applicationinsights-shims": "npm:3.0.1" + "@microsoft/dynamicproto-js": "npm:^2.0.3" + "@nevware21/ts-async": "npm:>= 0.5.4 < 2.x" + "@nevware21/ts-utils": "npm:>= 0.11.8 < 2.x" + peerDependencies: + tslib: ">= 1.0.0" + checksum: 10c0/d7d878c5e55f9b0b1880a6e02f504f1117fc7e7a4153f7b2377c8fa4acf54c27bf041fc6c7ec3b77445cf44fd4aaa93ffa4c5febc96569f60708c2a5b9cafc02 + languageName: node + linkType: hard + +"@microsoft/applicationinsights-shims@npm:3.0.1": + version: 3.0.1 + resolution: "@microsoft/applicationinsights-shims@npm:3.0.1" + dependencies: + "@nevware21/ts-utils": "npm:>= 0.9.4 < 2.x" + checksum: 10c0/3fa11dbbe6c4844fb28aecaef0aa352ace22558e161d27a7ff227060fb07e724fc1a7da449ae01327ff05d416abfff6987019c332f8b956c83a9f38f6b191e60 + languageName: node + linkType: hard + "@microsoft/applicationinsights-web-snippet@npm:^1.0.1": version: 1.0.1 resolution: "@microsoft/applicationinsights-web-snippet@npm:1.0.1" @@ -6596,6 +6826,15 @@ __metadata: languageName: node linkType: hard +"@microsoft/dynamicproto-js@npm:^2.0.3": + version: 2.0.3 + resolution: "@microsoft/dynamicproto-js@npm:2.0.3" + dependencies: + "@nevware21/ts-utils": "npm:>= 0.10.4 < 2.x" + checksum: 10c0/3f17ddd5bebd478337038fb307af2570f5c8e0e49652706a3f34ad5bc0ba880114044965d23f8946cc062bb2d7d7a467c482f1323c6e4465f60907f71d018538 + languageName: node + linkType: hard + "@microsoft/eslint-plugin-sdl@npm:^1.1.0": version: 1.1.0 resolution: "@microsoft/eslint-plugin-sdl@npm:1.1.0" @@ -6620,6 +6859,22 @@ __metadata: languageName: node linkType: hard +"@nevware21/ts-async@npm:>= 0.5.4 < 2.x": + version: 0.5.5 + resolution: "@nevware21/ts-async@npm:0.5.5" + dependencies: + "@nevware21/ts-utils": "npm:>= 0.12.2 < 2.x" + checksum: 10c0/4460fa273cc855f9ee8e31a3092b0f94f52e228151494b66f7d318947aa4ecd36a60e485ab61dd47210418823839fa118b1781c31dfd72cdb863207940121e13 + languageName: node + linkType: hard + +"@nevware21/ts-utils@npm:>= 0.10.4 < 2.x, @nevware21/ts-utils@npm:>= 0.11.8 < 2.x, @nevware21/ts-utils@npm:>= 0.12.2 < 2.x, @nevware21/ts-utils@npm:>= 0.9.4 < 2.x": + version: 0.12.5 + resolution: "@nevware21/ts-utils@npm:0.12.5" + checksum: 10c0/788e691b78725d35ea65b3411ebcedca882c21ceefe632abbffff0954c4a3611cf8e6f704c41d1fbcfa4b4512969fae1be143282fd5e6f1aaa1893659bbb4be9 + languageName: node + linkType: hard + "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" @@ -7680,6 +7935,37 @@ __metadata: languageName: node linkType: hard +"@react-native-windows/cli@npm:0.81.1": + version: 0.81.1 + resolution: "@react-native-windows/cli@npm:0.81.1" + dependencies: + "@react-native-windows/codegen": "npm:0.81.1" + "@react-native-windows/fs": "npm:0.81.0" + "@react-native-windows/package-utils": "npm:0.81.0" + "@react-native-windows/telemetry": "npm:0.81.0" + "@xmldom/xmldom": "npm:^0.7.7" + chalk: "npm:^4.1.0" + cli-spinners: "npm:^2.2.0" + envinfo: "npm:^7.5.0" + execa: "npm:^5.0.0" + find-up: "npm:^4.1.0" + glob: "npm:^7.1.1" + lodash: "npm:^4.17.15" + mustache: "npm:^4.0.1" + ora: "npm:^3.4.0" + prompts: "npm:^2.4.1" + semver: "npm:^7.3.2" + shelljs: "npm:^0.8.4" + username: "npm:^5.1.0" + xml-formatter: "npm:^2.4.0" + xml-parser: "npm:^1.2.1" + xpath: "npm:^0.0.27" + peerDependencies: + react-native: ^0.81.0-0 + checksum: 10c0/ec1becd47f85ef81aff178b2e4edd89378ea9b991b1285ef53f3af7b4a7f114eb9b3ed779ce5ff691b2783bb60c2421aa47c4c6063007e3f070dfcbdaa84f0bb + languageName: node + linkType: hard + "@react-native-windows/cli@npm:^0.74.0": version: 0.74.12 resolution: "@react-native-windows/cli@npm:0.74.12" @@ -7729,6 +8015,24 @@ __metadata: languageName: node linkType: hard +"@react-native-windows/codegen@npm:0.81.1": + version: 0.81.1 + resolution: "@react-native-windows/codegen@npm:0.81.1" + dependencies: + "@react-native-windows/fs": "npm:0.81.0" + chalk: "npm:^4.1.0" + globby: "npm:^11.1.0" + mustache: "npm:^4.0.1" + source-map-support: "npm:^0.5.19" + yargs: "npm:^16.2.0" + peerDependencies: + react-native: ^0.81.0-0 + bin: + react-native-windows-codegen: bin.js + checksum: 10c0/71d25ada8e2eb2e7e1ac26a041f0ad0e0179fe8e8d649113c68c6f809f122657759f19afd88fe2f51adafbb163a90e19fa45481e996ce407f294b5fce1316773 + languageName: node + linkType: hard + "@react-native-windows/find-repo-root@npm:0.74.1": version: 0.74.1 resolution: "@react-native-windows/find-repo-root@npm:0.74.1" @@ -7739,6 +8043,16 @@ __metadata: languageName: node linkType: hard +"@react-native-windows/find-repo-root@npm:0.81.0": + version: 0.81.0 + resolution: "@react-native-windows/find-repo-root@npm:0.81.0" + dependencies: + "@react-native-windows/fs": "npm:0.81.0" + find-up: "npm:^4.1.0" + checksum: 10c0/6521cb8d200cca63f7166296e8f18313c8e9d7a8ea34929c0bb5d0ca79f1dc4f96db61d115ca732e1d766702c21d13234f66d2ee94c080a4705af3c5dad6e764 + languageName: node + linkType: hard + "@react-native-windows/fs@npm:0.74.1": version: 0.74.1 resolution: "@react-native-windows/fs@npm:0.74.1" @@ -7748,6 +8062,15 @@ __metadata: languageName: node linkType: hard +"@react-native-windows/fs@npm:0.81.0": + version: 0.81.0 + resolution: "@react-native-windows/fs@npm:0.81.0" + dependencies: + graceful-fs: "npm:^4.2.8" + checksum: 10c0/3bb8d17bc494906f8fd06ed595d4a4ac79a798807d19c69f0c253a90ea6b3f4a6982eb8e1bff41be324700ae20f118be52f4f420c47025c42a1eb919aa9016d6 + languageName: node + linkType: hard + "@react-native-windows/package-utils@npm:0.74.1": version: 0.74.1 resolution: "@react-native-windows/package-utils@npm:0.74.1" @@ -7760,6 +8083,18 @@ __metadata: languageName: node linkType: hard +"@react-native-windows/package-utils@npm:0.81.0": + version: 0.81.0 + resolution: "@react-native-windows/package-utils@npm:0.81.0" + dependencies: + "@react-native-windows/find-repo-root": "npm:0.81.0" + "@react-native-windows/fs": "npm:0.81.0" + get-monorepo-packages: "npm:^1.2.0" + lodash: "npm:^4.17.15" + checksum: 10c0/7527f54d275db1591d0d85bea9b1a75ae97c606591981917e0e8329cbef6fc8eda9bff3f2f1f61c99c0e1172013fafb708fb7483888ecade274b29147dd458d5 + languageName: node + linkType: hard + "@react-native-windows/telemetry@npm:0.74.2": version: 0.74.2 resolution: "@react-native-windows/telemetry@npm:0.74.2" @@ -7777,6 +8112,23 @@ __metadata: languageName: node linkType: hard +"@react-native-windows/telemetry@npm:0.81.0": + version: 0.81.0 + resolution: "@react-native-windows/telemetry@npm:0.81.0" + dependencies: + "@microsoft/1ds-core-js": "npm:^4.3.0" + "@microsoft/1ds-post-js": "npm:^4.3.0" + "@react-native-windows/fs": "npm:0.81.0" + "@xmldom/xmldom": "npm:^0.7.7" + ci-info: "npm:^3.2.0" + envinfo: "npm:^7.8.1" + lodash: "npm:^4.17.21" + os-locale: "npm:^5.0.0" + xpath: "npm:^0.0.27" + checksum: 10c0/1b33a1e5ac3617a6dfe0a8ea25aae0835cc632a0bd14c7e7a75c98e105172d1ca0cb972861de36dfffd86791c1e56c3022f5e7c59c3c51421c2387cf274d4c16 + languageName: node + linkType: hard + "@react-native/assets-registry@npm:0.74.89": version: 0.74.89 resolution: "@react-native/assets-registry@npm:0.74.89" @@ -8144,6 +8496,20 @@ __metadata: languageName: node linkType: hard +"@react-native/new-app-screen@npm:0.81.5": + version: 0.81.5 + resolution: "@react-native/new-app-screen@npm:0.81.5" + peerDependencies: + "@types/react": ^19.1.0 + react: "*" + react-native: "*" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 10c0/b851159b97d03e618d6b84fa91302f8482e1bd83de7a147febf4d9cf84ee0414da1afa351850e28492411e817f473e9cfc156c5a550bea0614ebdf4f627b2b0a + languageName: node + linkType: hard + "@react-native/normalize-colors@npm:0.74.89": version: 0.74.89 resolution: "@react-native/normalize-colors@npm:0.74.89" @@ -9474,10 +9840,10 @@ __metadata: "@fluentui-react-native/framework-base": "workspace:*" "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" - "@types/react": "npm:~18.2.0" + "@types/react": "npm:~19.1.0" "@uifabricshared/foundation-settings": "workspace:*" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" peerDependencies: react: 18.2.0 || 19.0.0 || 19.1.0 react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 @@ -9494,17 +9860,17 @@ __metadata: "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" "@fluentui-react-native/theme-types": "workspace:*" - "@office-iss/react-native-win32": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" + "@office-iss/react-native-win32": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" "@uifabricshared/foundation-composable": "workspace:*" "@uifabricshared/foundation-settings": "workspace:*" "@uifabricshared/foundation-tokens": "workspace:*" "@uifabricshared/themed-settings": "workspace:*" "@uifabricshared/theming-ramp": "workspace:*" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" peerDependencies: "@office-iss/react-native-win32": ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -9532,9 +9898,9 @@ __metadata: "@fluentui-react-native/react-configs": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" "@types/jest": "npm:^29.0.0" - "@types/react": "npm:~18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" + "@types/react": "npm:~19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" peerDependencies: react: 18.2.0 || 19.0.0 || 19.1.0 languageName: unknown @@ -9551,17 +9917,20 @@ __metadata: "@fluentui-react-native/react-configs": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" "@fluentui-react-native/tokens": "workspace:*" - "@office-iss/react-native-win32": "npm:^0.74.0" - "@react-native/babel-preset": "npm:^0.74.0" - "@react-native/metro-config": "npm:^0.74.0" + "@office-iss/react-native-win32": "npm:^0.81.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/babel-preset": "npm:^0.81.0" + "@react-native/metro-config": "npm:^0.81.0" "@types/jest": "npm:^29.0.0" "@types/node": "catalog:" - "@types/react": "npm:~18.2.0" + "@types/react": "npm:~19.1.0" "@uifabricshared/foundation-settings": "workspace:*" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" peerDependencies: "@office-iss/react-native-win32": ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -9591,9 +9960,9 @@ __metadata: "@react-native/babel-preset": "npm:^0.74.0" "@react-native/metro-config": "npm:^0.74.0" "@types/jest": "npm:^29.0.0" - "@types/react": "npm:~18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" + "@types/react": "npm:~19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" peerDependencies: react: 18.2.0 || 19.0.0 || 19.1.0 languageName: unknown @@ -9609,13 +9978,13 @@ __metadata: "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/react-configs": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" - "@react-native/babel-preset": "npm:^0.74.0" + "@react-native/babel-preset": "npm:^0.81.0" "@types/jest": "npm:^29.0.0" "@types/node": "catalog:" - "@types/react": "npm:~18.2.0" + "@types/react": "npm:~19.1.0" "@uifabricshared/foundation-settings": "workspace:*" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" peerDependencies: react: 18.2.0 || 19.0.0 || 19.1.0 languageName: unknown @@ -9634,10 +10003,10 @@ __metadata: "@fluentui-react-native/test-tools": "workspace:*" "@fluentui-react-native/theme-types": "workspace:*" "@types/jest": "npm:^29.0.0" - "@types/react": "npm:~18.2.0" + "@types/react": "npm:~19.1.0" "@uifabricshared/foundation-settings": "workspace:*" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" peerDependencies: react: 18.2.0 || 19.0.0 || 19.1.0 languageName: unknown @@ -9654,14 +10023,17 @@ __metadata: "@fluentui-react-native/kit-config": "workspace:*" "@fluentui-react-native/scripts": "workspace:*" "@fluentui-react-native/win32-theme": "workspace:*" - "@react-native/metro-config": "npm:^0.74.0" - "@types/react": "npm:~18.2.0" + "@react-native-community/cli": "npm:^20.0.0" + "@react-native-community/cli-platform-android": "npm:^20.0.0" + "@react-native-community/cli-platform-ios": "npm:^20.0.0" + "@react-native/metro-config": "npm:^0.81.0" + "@types/react": "npm:~19.1.0" "@uifabricshared/theme-registry": "workspace:*" "@uifabricshared/theming-ramp": "workspace:*" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-native-macos: "npm:^0.74.0" - react-native-windows: "npm:^0.74.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-native-macos: "npm:^0.81.0" + react-native-windows: "npm:^0.81.0" peerDependencies: "@office-iss/react-native-win32": ^0.74.0 react: 18.2.0 || 19.0.0 || 19.1.0 @@ -20638,6 +21010,63 @@ __metadata: languageName: node linkType: hard +"react-native-windows@npm:^0.81.0": + version: 0.81.3 + resolution: "react-native-windows@npm:0.81.3" + dependencies: + "@babel/runtime": "npm:^7.0.0" + "@jest/create-cache-key-function": "npm:^29.7.0" + "@react-native-community/cli": "npm:17.0.0" + "@react-native-community/cli-platform-android": "npm:17.0.0" + "@react-native-community/cli-platform-ios": "npm:17.0.0" + "@react-native-windows/cli": "npm:0.81.1" + "@react-native/assets": "npm:1.0.0" + "@react-native/assets-registry": "npm:0.81.5" + "@react-native/codegen": "npm:0.81.5" + "@react-native/community-cli-plugin": "npm:0.81.5" + "@react-native/gradle-plugin": "npm:0.81.5" + "@react-native/js-polyfills": "npm:0.81.5" + "@react-native/new-app-screen": "npm:0.81.5" + "@react-native/normalize-colors": "npm:0.81.5" + "@react-native/virtualized-lists": "npm:0.81.5" + abort-controller: "npm:^3.0.0" + anser: "npm:^1.4.9" + ansi-regex: "npm:^5.0.0" + babel-jest: "npm:^29.7.0" + babel-plugin-syntax-hermes-parser: "npm:0.28.1" + base64-js: "npm:^1.5.1" + chalk: "npm:^4.0.0" + commander: "npm:^12.0.0" + event-target-shim: "npm:^5.0.1" + flow-enums-runtime: "npm:^0.0.6" + glob: "npm:^7.1.1" + invariant: "npm:^2.2.4" + jest-environment-node: "npm:^29.7.0" + memoize-one: "npm:^5.0.0" + metro-runtime: "npm:^0.83.1" + metro-source-map: "npm:^0.82.2" + mkdirp: "npm:^0.5.1" + nullthrows: "npm:^1.1.1" + pretty-format: "npm:^29.7.0" + promise: "npm:^8.3.0" + react-devtools-core: "npm:^6.1.1" + react-refresh: "npm:^0.14.0" + regenerator-runtime: "npm:^0.13.2" + scheduler: "npm:0.26.0" + semver: "npm:^7.1.3" + source-map-support: "npm:^0.5.19" + stacktrace-parser: "npm:^0.1.10" + whatwg-fetch: "npm:^3.0.0" + ws: "npm:^6.2.3" + yargs: "npm:^17.6.2" + peerDependencies: + "@types/react": ^19.1.0 + react: ^19.1.0 + react-native: 0.81.5 + checksum: 10c0/5408bb6ac8708c32e2d80a5d29ea78c874532d83e7c18908b396393782cfb7269f542e3d6dcd69c369eca720200362ce8b6218788e1cc470aca7fc7fcfe07b65 + languageName: node + linkType: hard + "react-native@npm:^0.74.0": version: 0.74.7 resolution: "react-native@npm:0.74.7" From 9d52733bb28076c4f8776633fe2f0e49be0c3f33 Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Tue, 3 Feb 2026 17:23:34 -0800 Subject: [PATCH 23/29] fix additional package consistency issues --- packages/components/Switch/package.json | 1 - packages/utils/adapters/package.json | 1 - yarn.lock | 2 -- 3 files changed, 4 deletions(-) diff --git a/packages/components/Switch/package.json b/packages/components/Switch/package.json index 648e22975e..7ded0944c4 100644 --- a/packages/components/Switch/package.json +++ b/packages/components/Switch/package.json @@ -32,7 +32,6 @@ "update-snapshots": "fluentui-scripts jest -u" }, "dependencies": { - "@fluentui-react-native/adapters": "workspace:*", "@fluentui-react-native/framework": "workspace:*", "@fluentui-react-native/interactive-hooks": "workspace:*", "@fluentui-react-native/text": "workspace:*", diff --git a/packages/utils/adapters/package.json b/packages/utils/adapters/package.json index 52f1a6fca6..750b43daa6 100644 --- a/packages/utils/adapters/package.json +++ b/packages/utils/adapters/package.json @@ -42,7 +42,6 @@ "@react-native-community/cli-platform-android": "^20.0.0", "@react-native-community/cli-platform-ios": "^20.0.0", "@react-native/metro-config": "^0.81.0", - "@types/jest": "^29.0.0", "@types/react": "~19.1.0", "react": "19.1.0", "react-native": "^0.81.0", diff --git a/yarn.lock b/yarn.lock index d68018e11d..cb8edd287e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2420,7 +2420,6 @@ __metadata: "@react-native-community/cli-platform-android": "npm:^20.0.0" "@react-native-community/cli-platform-ios": "npm:^20.0.0" "@react-native/metro-config": "npm:^0.81.0" - "@types/jest": "npm:^29.0.0" "@types/react": "npm:~19.1.0" react: "npm:19.1.0" react-native: "npm:^0.81.0" @@ -4837,7 +4836,6 @@ __metadata: resolution: "@fluentui-react-native/switch@workspace:packages/components/Switch" dependencies: "@babel/core": "catalog:" - "@fluentui-react-native/adapters": "workspace:*" "@fluentui-react-native/babel-config": "workspace:*" "@fluentui-react-native/eslint-config-rules": "workspace:*" "@fluentui-react-native/framework": "workspace:*" From be8e343e47f74b0ff39fff2afba34647d564a3da Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Tue, 3 Feb 2026 18:29:34 -0800 Subject: [PATCH 24/29] fix tests for react 19 --- .../Avatar/src/__tests__/Avatar.test.tsx | 37 ++- .../Badge/src/__tests__/Badge.test.tsx | 87 ++++-- .../components/Button/src/Button.test.tsx | 71 +++-- .../CompoundButton/CompoundButton.test.tsx | 9 +- .../components/Button/src/FAB/FAB.test.tsx | 16 +- .../src/ToggleButton/ToggleButton.test.tsx | 9 +- .../Button/src/deprecated/Button.test.tsx | 9 +- .../Callout/src/__tests__/Callout.test.tsx | 9 +- .../Checkbox/src/__tests__/Checkbox.test.tsx | 40 ++- .../Chip/src/__tests__/Chip.test.tsx | 23 +- .../src/__tests__/ContextualMenu.test.tsx | 9 +- .../Divider/src/__tests__/Divider.test.tsx | 79 ++++-- .../src/__tests__/FocusTrapZone.test.tsx | 19 +- .../src/__tests__/FocusZone.test.tsx | 107 ++++---- .../Icon/src/__tests__/Icon.test.tsx | 30 ++- .../Input/src/__tests__/Input.test.tsx | 44 ++- .../Link/src/__tests__/Link.test.tsx | 37 ++- .../Link/src/legacy/__tests__/Link.test.tsx | 19 +- .../Menu/src/__tests__/Menu.test.tsx | 121 ++++++--- .../__snapshots__/Menu.test.tsx.snap | 106 ++++++++ packages/components/MenuButton/jest.config.js | 2 +- .../src/__tests__/MenuButton.test.tsx | 9 +- .../__snapshots__/MenuButton.test.tsx.snap | 14 +- .../src/__tests__/Notification.test.tsx | 12 +- .../__tests__/RadioExperimental.test.tsx | 16 +- .../__tests__/RadioGroupExperimental.test.tsx | 80 +++--- .../src/legacy/__tests__/RadioButton.test.tsx | 9 +- .../__tests__/RadioButtonGroup.test.tsx | 41 +-- .../src/__tests__/Separator.test.tsx | 16 +- .../Stack/src/__tests__/Stack.test.tsx | 13 +- .../Switch/src/__tests__/Switch.test.tsx | 16 +- .../__snapshots__/Switch.test.tsx.snap | 4 +- packages/components/TabList/jest.config.js | 2 +- .../TabList/src/Tab/__tests__/Tab.test.tsx | 49 ++-- .../__tests__/__snapshots__/Tab.test.tsx.snap | 60 +---- .../src/TabList/__tests__/TabList.test.tsx | 68 ++--- .../__snapshots__/TabList.test.tsx.snap | 252 ++++-------------- .../Text/src/__tests__/Text.test.tsx | 38 ++- .../src/configureReactNativeJest.js | 4 + .../Drawer/src/__tests__/Drawer.test.tsx | 12 +- .../src/__tests__/MenuButton.test.tsx | 9 +- .../Overflow/src/__tests__/Overflow.test.tsx | 11 +- .../Shadow/src/__tests__/Shadow.test.tsx | 113 +++++--- .../__snapshots__/Shadow.test.tsx.snap | 4 - .../experimental/Shimmer/src/Shimmer.test.tsx | 28 +- .../Tooltip/src/__tests__/Tooltip.test.tsx | 11 +- .../src/component-patterns/render.ts | 7 +- .../composeFactory.test.tsx.snap | 2 +- .../composition/src/composeFactory.test.tsx | 17 +- .../framework/src/compressible.test.tsx | 23 +- .../framework/use-slot/src/useSlot.test.tsx | 37 ++- .../use-slots/src/buildUseSlots.test.tsx | 8 +- .../use-slots/src/useSlots.samples.test.tsx | 34 +-- .../src/useStyling.samples.test.tsx | 37 ++- .../use-tokens/src/useTokens.samples.test.tsx | 37 ++- .../src/__tests__/useConst.test.tsx | 23 +- .../__tests__/useControllableValue.test.tsx | 32 ++- .../src/__tests__/useKeyProps.test.tsx | 15 +- packages/utils/test-tools/package.json | 14 +- packages/utils/test-tools/src/baseTests.tsx | 10 +- yarn.lock | 14 +- 61 files changed, 1263 insertions(+), 821 deletions(-) diff --git a/packages/components/Avatar/src/__tests__/Avatar.test.tsx b/packages/components/Avatar/src/__tests__/Avatar.test.tsx index 4a8ea62acc..20efe97597 100644 --- a/packages/components/Avatar/src/__tests__/Avatar.test.tsx +++ b/packages/components/Avatar/src/__tests__/Avatar.test.tsx @@ -1,3 +1,5 @@ +import { act } from 'react'; + import * as renderer from 'react-test-renderer'; import { Avatar } from '..'; @@ -134,27 +136,42 @@ describe('resolveColorfulToSpecificColor method', () => { describe('Avatar component tests', () => { it('Avatar default', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Avatar circular', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Avatar square', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Avatar badge', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Avatar ring', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); }); diff --git a/packages/components/Badge/src/__tests__/Badge.test.tsx b/packages/components/Badge/src/__tests__/Badge.test.tsx index 0beab6e254..72a8e7aea9 100644 --- a/packages/components/Badge/src/__tests__/Badge.test.tsx +++ b/packages/components/Badge/src/__tests__/Badge.test.tsx @@ -1,3 +1,5 @@ +import { act } from 'react'; + import * as renderer from 'react-test-renderer'; import { Badge, CounterBadge, PresenceBadge } from '../'; @@ -9,19 +11,23 @@ describe('Badge component tests', () => { fontSize: 16, }; it('Empty Badge', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Badge all props', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( Badge , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Badge tokens', () => { @@ -30,23 +36,32 @@ describe('Badge component tests', () => { borderColor: '#f09', borderWidth: 4, }); - const tree = renderer.create(Badge Tokens).toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(Badge Tokens); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Filled badge with shadow', () => { const BadgeWithShadow = Badge.customize({ shadowToken: { ambient: { x: 0, y: 0, blur: 8, color: '#00000033' }, key: { x: 0, y: 32, blur: 64, color: '#0000003d' } }, }); - const tree = renderer.create(Badge with shadow).toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(Badge with shadow); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); }); describe('PresenceBadge component tests', () => { it('PresenceBadge props', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); }); @@ -57,13 +72,17 @@ describe('CounterBadge component tests', () => { fontSize: 16, }; it('Empty Badge', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('CounterBadge all props', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( { icon={{ fontSource: { ...fontBuiltInProps }, color: '#fff' }} count={30} />, - ) - .toJSON(); - expect(tree).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('CounterBadge tokens', () => { @@ -82,22 +101,34 @@ describe('CounterBadge component tests', () => { borderColor: '#f09', borderWidth: 4, }); - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('CounterBadge shows 99+', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('CounterBadge shows 1000+', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('CounterBadge shows zero', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); }); diff --git a/packages/components/Button/src/Button.test.tsx b/packages/components/Button/src/Button.test.tsx index e11d59ce08..e0f282f5e3 100644 --- a/packages/components/Button/src/Button.test.tsx +++ b/packages/components/Button/src/Button.test.tsx @@ -1,3 +1,4 @@ +import { act } from 'react'; import { Pressable, Text } from 'react-native'; import { Icon } from '@fluentui-react-native/icon'; @@ -7,49 +8,76 @@ import { Button } from './Button'; describe('Button component tests', () => { it('Button default', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Button disabled', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Button primary', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Button subtle', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Button circular', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Button square', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Button small', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Button large', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Button customized', () => { const CustomButton = Button.customize({ backgroundColor: 'pink' }); - const tree = renderer.create(Custom Button).toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(Custom Button); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Button composed', () => { @@ -60,7 +88,10 @@ describe('Button component tests', () => { content: Text, }, }); - const tree = renderer.create(Composed Button with RNText).toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(Composed Button with RNText); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); }); diff --git a/packages/components/Button/src/CompoundButton/CompoundButton.test.tsx b/packages/components/Button/src/CompoundButton/CompoundButton.test.tsx index 9b59759233..645f75c911 100644 --- a/packages/components/Button/src/CompoundButton/CompoundButton.test.tsx +++ b/packages/components/Button/src/CompoundButton/CompoundButton.test.tsx @@ -1,8 +1,13 @@ +import { act } from 'react'; + import * as renderer from 'react-test-renderer'; import { CompoundButton } from './CompoundButton'; it('CompoundButton default', () => { - const tree = renderer.create(Default Button).toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(Default Button); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); diff --git a/packages/components/Button/src/FAB/FAB.test.tsx b/packages/components/Button/src/FAB/FAB.test.tsx index fdbe970f17..ac27771116 100644 --- a/packages/components/Button/src/FAB/FAB.test.tsx +++ b/packages/components/Button/src/FAB/FAB.test.tsx @@ -1,3 +1,5 @@ +import { act } from 'react'; + import * as renderer from 'react-test-renderer'; import { FAB } from './FAB'; @@ -17,14 +19,20 @@ beforeAll(() => { }); it('Default FAB (iOS)', () => { - const tree = renderer.create(Default FAB (iOS)).toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(Default FAB (iOS)); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Custom FAB with no shadow(iOS)', () => { const CustomFABNoShadow = FAB.customize({ shadowToken: undefined }); - const tree = renderer.create(Custom FAB with no shadow(iOS)).toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(Custom FAB with no shadow(iOS)); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); afterAll(() => { diff --git a/packages/components/Button/src/ToggleButton/ToggleButton.test.tsx b/packages/components/Button/src/ToggleButton/ToggleButton.test.tsx index c06bbea21d..9cff06bb3b 100644 --- a/packages/components/Button/src/ToggleButton/ToggleButton.test.tsx +++ b/packages/components/Button/src/ToggleButton/ToggleButton.test.tsx @@ -1,8 +1,13 @@ +import { act } from 'react'; + import * as renderer from 'react-test-renderer'; import { ToggleButton } from './ToggleButton'; it('ToggleButton default', () => { - const tree = renderer.create(Default Button).toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(Default Button); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); diff --git a/packages/components/Button/src/deprecated/Button.test.tsx b/packages/components/Button/src/deprecated/Button.test.tsx index 0232bff796..0b1356b63d 100644 --- a/packages/components/Button/src/deprecated/Button.test.tsx +++ b/packages/components/Button/src/deprecated/Button.test.tsx @@ -1,8 +1,13 @@ +import { act } from 'react'; + import * as renderer from 'react-test-renderer'; import { Button } from './Button'; it('Button default', () => { - const tree = renderer.create( @@ -26,14 +28,16 @@ describe('Menu component tests', () => { , - ) - .toJSON(); + ); + }); + const tree = component!.toJSON(); expect(tree).toMatchSnapshot(); }); it('Menu open', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( @@ -44,14 +48,36 @@ describe('Menu component tests', () => { , - ) - .toJSON(); + ); + }); + const tree = component!.toJSON(); expect(tree).toMatchSnapshot(); }); it('Menu defaultOpen', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( + + + + + + + Option 1 + + + , + ); + }); + const tree = component!.toJSON(); + expect(tree).toMatchSnapshot(); + }); + + it('Menu defaultOpen', () => { + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( @@ -63,14 +89,16 @@ describe('Menu component tests', () => { , - ) - .toJSON(); + ); + }); + const tree = component!.toJSON(); expect(tree).toMatchSnapshot(); }); it('Menu open checkbox and divider', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( @@ -85,14 +113,16 @@ describe('Menu component tests', () => { , - ) - .toJSON(); + ); + }); + const tree = component!.toJSON(); expect(tree).toMatchSnapshot(); }); it('Menu open radio', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( @@ -104,14 +134,16 @@ describe('Menu component tests', () => { , - ) - .toJSON(); + ); + }); + const tree = component!.toJSON(); expect(tree).toMatchSnapshot(); }); it('Menu open checkbox defaultChecked', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( @@ -124,14 +156,16 @@ describe('Menu component tests', () => { , - ) - .toJSON(); + ); + }); + const tree = component!.toJSON(); expect(tree).toMatchSnapshot(); }); it('Menu open checkbox checked', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( @@ -144,14 +178,16 @@ describe('Menu component tests', () => { , - ) - .toJSON(); + ); + }); + const tree = component!.toJSON(); expect(tree).toMatchSnapshot(); }); it('Menu submenu', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( @@ -172,16 +208,18 @@ describe('Menu component tests', () => { , - ) - .toJSON(); + ); + }); + const tree = component!.toJSON(); expect(tree).toMatchSnapshot(); }); // Note the capital T the "Tip" (in the snapshot) // It is intentional as it matches the same prop in NetUI it('Menu alwaysShowToolTip', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( @@ -199,15 +237,17 @@ describe('Menu component tests', () => { , - ) - .toJSON(); + ); + }); + const tree = component!.toJSON(); expect(tree).toMatchSnapshot(); }); }); it('Menu open menu group and menu header', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( @@ -226,7 +266,8 @@ it('Menu open menu group and menu header', () => { , - ) - .toJSON(); + ); + }); + const tree = component!.toJSON(); expect(tree).toMatchSnapshot(); }); diff --git a/packages/components/Menu/src/__tests__/__snapshots__/Menu.test.tsx.snap b/packages/components/Menu/src/__tests__/__snapshots__/Menu.test.tsx.snap index 02fde87982..93a2bda470 100644 --- a/packages/components/Menu/src/__tests__/__snapshots__/Menu.test.tsx.snap +++ b/packages/components/Menu/src/__tests__/__snapshots__/Menu.test.tsx.snap @@ -320,6 +320,112 @@ exports[`Menu component tests Menu defaultOpen 1`] = ` `; +exports[`Menu component tests Menu defaultOpen 2`] = ` + + + Open + + +`; + exports[`Menu component tests Menu open 1`] = ` { text: 'Menu Item', }, ]; - const tree = renderer.create(Press for Nested MenuButton).toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(Press for Nested MenuButton); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); diff --git a/packages/components/MenuButton/src/__tests__/__snapshots__/MenuButton.test.tsx.snap b/packages/components/MenuButton/src/__tests__/__snapshots__/MenuButton.test.tsx.snap index 2160fdef53..d332c5251c 100644 --- a/packages/components/MenuButton/src/__tests__/__snapshots__/MenuButton.test.tsx.snap +++ b/packages/components/MenuButton/src/__tests__/__snapshots__/MenuButton.test.tsx.snap @@ -11,6 +11,7 @@ exports[`ContextualMenu default 1`] = ` "disabled": false, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": undefined, } @@ -24,18 +25,9 @@ exports[`ContextualMenu default 1`] = ` } } accessible={true} + disabled={false} enableFocusRing={true} focusable={true} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityTap={[Function]} onBlur={[Function]} onClick={[Function]} @@ -63,7 +55,7 @@ exports[`ContextualMenu default 1`] = ` "flexDirection": "row", "justifyContent": "center", "overflow": "hidden", - "padding": 3, + "padding": 5, "width": undefined, } } diff --git a/packages/components/Notification/src/__tests__/Notification.test.tsx b/packages/components/Notification/src/__tests__/Notification.test.tsx index 3bfdba8488..da900e9a65 100644 --- a/packages/components/Notification/src/__tests__/Notification.test.tsx +++ b/packages/components/Notification/src/__tests__/Notification.test.tsx @@ -1,5 +1,5 @@ import * as renderer from 'react-test-renderer'; - +import { act } from 'react'; import { Notification } from '../Notification'; describe('Notification component tests', () => { @@ -10,8 +10,9 @@ describe('Notification component tests', () => { }); it('Notification default', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( { > Mail Archived , - ) - .toJSON(); + ); + }); + const tree = component!.toJSON(); expect(tree).toMatchSnapshot(); }); }); diff --git a/packages/components/RadioGroup/src/Radio/__tests__/RadioExperimental.test.tsx b/packages/components/RadioGroup/src/Radio/__tests__/RadioExperimental.test.tsx index 6432d26b28..55c521ccf3 100644 --- a/packages/components/RadioGroup/src/Radio/__tests__/RadioExperimental.test.tsx +++ b/packages/components/RadioGroup/src/Radio/__tests__/RadioExperimental.test.tsx @@ -1,15 +1,23 @@ +import { act } from 'react'; + import * as renderer from 'react-test-renderer'; import { Radio } from '../Radio'; describe('Radio component tests', () => { it('Radio default', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Radio disabled', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); }); diff --git a/packages/components/RadioGroup/src/RadioGroup/__tests__/RadioGroupExperimental.test.tsx b/packages/components/RadioGroup/src/RadioGroup/__tests__/RadioGroupExperimental.test.tsx index 9c58bbd40c..103fc342ce 100644 --- a/packages/components/RadioGroup/src/RadioGroup/__tests__/RadioGroupExperimental.test.tsx +++ b/packages/components/RadioGroup/src/RadioGroup/__tests__/RadioGroupExperimental.test.tsx @@ -1,3 +1,5 @@ +import { act } from 'react'; + import * as renderer from 'react-test-renderer'; import { Radio } from '../../Radio/Radio'; @@ -7,80 +9,86 @@ jest.useFakeTimers(); describe('RadioGroup component tests', () => { it('RadioGroup default', async () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); - await renderer.act(async () => null); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); + await act(async () => null); }); it('Radio not direct child of radio group', async () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); - await renderer.act(async () => null); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); + await act(async () => null); }); it('RadioGroup disabled', async () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); - await renderer.act(async () => null); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); + await act(async () => null); }); it('RadioGroup required', async () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); - await renderer.act(async () => null); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); + await act(async () => null); }); it('RadioGroup horizontal', async () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); - await renderer.act(async () => null); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); + await act(async () => null); }); it('RadioGroup horizontal-stacked', async () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); - await renderer.act(async () => null); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); + await act(async () => null); }); }); diff --git a/packages/components/RadioGroup/src/legacy/__tests__/RadioButton.test.tsx b/packages/components/RadioGroup/src/legacy/__tests__/RadioButton.test.tsx index e53b765d38..5b276d7041 100644 --- a/packages/components/RadioGroup/src/legacy/__tests__/RadioButton.test.tsx +++ b/packages/components/RadioGroup/src/legacy/__tests__/RadioButton.test.tsx @@ -1,10 +1,15 @@ +import { act } from 'react'; + import * as renderer from 'react-test-renderer'; import { RadioButton } from '../RadioButton'; describe('RadioButton component tests', () => { it('RadioButton default', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); }); diff --git a/packages/components/RadioGroup/src/legacy/__tests__/RadioButtonGroup.test.tsx b/packages/components/RadioGroup/src/legacy/__tests__/RadioButtonGroup.test.tsx index f13d88b5be..4f9e5f9de3 100644 --- a/packages/components/RadioGroup/src/legacy/__tests__/RadioButtonGroup.test.tsx +++ b/packages/components/RadioGroup/src/legacy/__tests__/RadioButtonGroup.test.tsx @@ -1,3 +1,4 @@ +import { act } from 'react'; import { View } from 'react-native'; import * as renderer from 'react-test-renderer'; @@ -6,26 +7,30 @@ import { RadioGroup, RadioButton } from '../..'; describe('RadioButton component tests', () => { it('RadioButton default', () => { - const tree = renderer.create( - - - - , - ); - - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( + + + + , + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('RadioButton not direct child of radio group', () => { - const tree = renderer.create( - - - - - - , - ); - - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( + + + + + + , + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); }); diff --git a/packages/components/Separator/src/__tests__/Separator.test.tsx b/packages/components/Separator/src/__tests__/Separator.test.tsx index cce9c3232b..72f8e19746 100644 --- a/packages/components/Separator/src/__tests__/Separator.test.tsx +++ b/packages/components/Separator/src/__tests__/Separator.test.tsx @@ -1,14 +1,22 @@ +import { act } from 'react'; + import * as renderer from 'react-test-renderer'; import { Separator } from '..'; it('Separator default', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Separator all props & tokens', () => { const CustomSeparator = Separator.customize({ separatorWidth: 15, color: 'red' }); - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); diff --git a/packages/components/Stack/src/__tests__/Stack.test.tsx b/packages/components/Stack/src/__tests__/Stack.test.tsx index b3d800d649..9cd424856d 100644 --- a/packages/components/Stack/src/__tests__/Stack.test.tsx +++ b/packages/components/Stack/src/__tests__/Stack.test.tsx @@ -1,17 +1,20 @@ +import { act } from 'react'; + import { Text } from '@fluentui-react-native/text'; import * as renderer from 'react-test-renderer'; import { Stack } from '..'; it('Stack with tokens', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( Hello Hello Hello , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); diff --git a/packages/components/Switch/src/__tests__/Switch.test.tsx b/packages/components/Switch/src/__tests__/Switch.test.tsx index a2412548c9..9eca778c59 100644 --- a/packages/components/Switch/src/__tests__/Switch.test.tsx +++ b/packages/components/Switch/src/__tests__/Switch.test.tsx @@ -1,3 +1,5 @@ +import { act } from 'react'; + import * as renderer from 'react-test-renderer'; import { Switch } from '../Switch'; @@ -6,11 +8,17 @@ import { Switch } from '../Switch'; jest.useFakeTimers(); it('Switch Default', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Switch Disabled', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); diff --git a/packages/components/Switch/src/__tests__/__snapshots__/Switch.test.tsx.snap b/packages/components/Switch/src/__tests__/__snapshots__/Switch.test.tsx.snap index 99776a9ac0..5e31d6bc58 100644 --- a/packages/components/Switch/src/__tests__/__snapshots__/Switch.test.tsx.snap +++ b/packages/components/Switch/src/__tests__/__snapshots__/Switch.test.tsx.snap @@ -61,7 +61,7 @@ exports[`Switch Default 1`] = ` ], }, "trackBackgroundStyle": { - "backgroundColor": "rgba(15, 108, 189, 1)", + "backgroundColor": "rgba(240, 240, 240, 1)", }, } } @@ -93,7 +93,7 @@ exports[`Switch Default 1`] = ` style={ { "alignItems": "center", - "backgroundColor": "rgba(15, 108, 189, 1)", + "backgroundColor": "rgba(240, 240, 240, 1)", "borderRadius": 100, "flexDirection": "row", "height": 32, diff --git a/packages/components/TabList/jest.config.js b/packages/components/TabList/jest.config.js index e35d4a0faa..ae7531f1cb 100644 --- a/packages/components/TabList/jest.config.js +++ b/packages/components/TabList/jest.config.js @@ -1,2 +1,2 @@ const { configureReactNativeJest } = require('@fluentui-react-native/jest-config'); -module.exports = configureReactNativeJest('win32'); +module.exports = configureReactNativeJest('windows'); diff --git a/packages/components/TabList/src/Tab/__tests__/Tab.test.tsx b/packages/components/TabList/src/Tab/__tests__/Tab.test.tsx index d85663f286..affb11672a 100644 --- a/packages/components/TabList/src/Tab/__tests__/Tab.test.tsx +++ b/packages/components/TabList/src/Tab/__tests__/Tab.test.tsx @@ -1,27 +1,34 @@ +import { act } from 'react'; + import * as renderer from 'react-test-renderer'; import Tab from '../Tab'; describe('Tab component tests', () => { it('Tab default props', () => { - const tree = renderer.create(Tab 1).toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(Tab 1); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Tab disabled', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( Tab 1 , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Tab render icon only', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( { }} tabKey="1" />, - ) - .toJSON(); - expect(tree).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Tab render icon + text', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( { > Tab 1 , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Customized Tab', () => { @@ -63,7 +71,10 @@ describe('Tab component tests', () => { indicatorThickness: 4, color: 'red', }); - const tree = renderer.create(Tab 1); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(Tab 1); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); }); diff --git a/packages/components/TabList/src/Tab/__tests__/__snapshots__/Tab.test.tsx.snap b/packages/components/TabList/src/Tab/__tests__/__snapshots__/Tab.test.tsx.snap index 5f5f6523d1..50aacacadb 100644 --- a/packages/components/TabList/src/Tab/__tests__/__snapshots__/Tab.test.tsx.snap +++ b/packages/components/TabList/src/Tab/__tests__/__snapshots__/Tab.test.tsx.snap @@ -20,6 +20,7 @@ exports[`Tab component tests Customized Tab 1`] = ` "disabled": false, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": false, } @@ -33,17 +34,8 @@ exports[`Tab component tests Customized Tab 1`] = ` } } accessible={true} + disabled={false} focusable={true} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityAction={[Function]} onBlur={[Function]} onClick={[Function]} @@ -158,6 +150,7 @@ exports[`Tab component tests Tab default props 1`] = ` "disabled": false, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": false, } @@ -171,17 +164,8 @@ exports[`Tab component tests Tab default props 1`] = ` } } accessible={true} + disabled={false} focusable={true} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityAction={[Function]} onBlur={[Function]} onClick={[Function]} @@ -296,6 +280,7 @@ exports[`Tab component tests Tab disabled 1`] = ` "disabled": true, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": false, } @@ -309,17 +294,8 @@ exports[`Tab component tests Tab disabled 1`] = ` } } accessible={true} + disabled={true} focusable={false} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityAction={[Function]} onBlur={[Function]} onClick={[Function]} @@ -434,6 +410,7 @@ exports[`Tab component tests Tab render icon + text 1`] = ` "disabled": false, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": false, } @@ -447,17 +424,8 @@ exports[`Tab component tests Tab render icon + text 1`] = ` } } accessible={true} + disabled={false} focusable={true} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityAction={[Function]} onBlur={[Function]} onClick={[Function]} @@ -584,6 +552,7 @@ exports[`Tab component tests Tab render icon only 1`] = ` "disabled": false, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": false, } @@ -597,17 +566,8 @@ exports[`Tab component tests Tab render icon only 1`] = ` } } accessible={true} + disabled={false} focusable={true} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityAction={[Function]} onBlur={[Function]} onClick={[Function]} diff --git a/packages/components/TabList/src/TabList/__tests__/TabList.test.tsx b/packages/components/TabList/src/TabList/__tests__/TabList.test.tsx index af4ca45659..407e8778c4 100644 --- a/packages/components/TabList/src/TabList/__tests__/TabList.test.tsx +++ b/packages/components/TabList/src/TabList/__tests__/TabList.test.tsx @@ -1,3 +1,5 @@ +import { act } from 'react'; + import * as renderer from 'react-test-renderer'; import Tab from '../../Tab/Tab'; @@ -8,80 +10,86 @@ jest.useFakeTimers(); describe('TabList component tests', () => { it('TabList default props', async () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( Tab 1 Tab 2 Tab 3 , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('TabList selected key', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( Tab 1 Tab 2 Tab 3 , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('TabList disabled list', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( Tab 1 Tab 2 Tab 3 , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('TabList appearance', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( Tab 1 Tab 2 Tab 3 , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('TabList size', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( Tab 1 Tab 2 Tab 3 , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('TabList orientation', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( Tab 1 Tab 2 Tab 3 , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); }); diff --git a/packages/components/TabList/src/TabList/__tests__/__snapshots__/TabList.test.tsx.snap b/packages/components/TabList/src/TabList/__tests__/__snapshots__/TabList.test.tsx.snap index 5f84f67853..18302c7013 100644 --- a/packages/components/TabList/src/TabList/__tests__/__snapshots__/TabList.test.tsx.snap +++ b/packages/components/TabList/src/TabList/__tests__/__snapshots__/TabList.test.tsx.snap @@ -58,6 +58,7 @@ exports[`TabList component tests TabList appearance 1`] = ` "disabled": false, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": false, } @@ -71,17 +72,8 @@ exports[`TabList component tests TabList appearance 1`] = ` } } accessible={true} + disabled={false} focusable={true} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityAction={[Function]} onBlur={[Function]} onClick={[Function]} @@ -193,6 +185,7 @@ exports[`TabList component tests TabList appearance 1`] = ` "disabled": false, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": false, } @@ -206,17 +199,8 @@ exports[`TabList component tests TabList appearance 1`] = ` } } accessible={true} + disabled={false} focusable={true} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityAction={[Function]} onBlur={[Function]} onClick={[Function]} @@ -328,6 +312,7 @@ exports[`TabList component tests TabList appearance 1`] = ` "disabled": false, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": false, } @@ -341,17 +326,8 @@ exports[`TabList component tests TabList appearance 1`] = ` } } accessible={true} + disabled={false} focusable={true} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityAction={[Function]} onBlur={[Function]} onClick={[Function]} @@ -497,9 +473,9 @@ exports[`TabList component tests TabList default props 1`] = ` ] } accessibilityLabel="Tab 1" - accessibilityPosInSet={0} + accessibilityPosInSet={1} accessibilityRole="tab" - accessibilitySetSize={0} + accessibilitySetSize={3} accessibilityState={ { "busy": undefined, @@ -507,6 +483,7 @@ exports[`TabList component tests TabList default props 1`] = ` "disabled": false, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": false, } @@ -520,17 +497,8 @@ exports[`TabList component tests TabList default props 1`] = ` } } accessible={true} + disabled={false} focusable={true} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityAction={[Function]} onBlur={[Function]} onClick={[Function]} @@ -632,9 +600,9 @@ exports[`TabList component tests TabList default props 1`] = ` ] } accessibilityLabel="Tab 2" - accessibilityPosInSet={0} + accessibilityPosInSet={2} accessibilityRole="tab" - accessibilitySetSize={0} + accessibilitySetSize={3} accessibilityState={ { "busy": undefined, @@ -642,6 +610,7 @@ exports[`TabList component tests TabList default props 1`] = ` "disabled": false, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": false, } @@ -655,17 +624,8 @@ exports[`TabList component tests TabList default props 1`] = ` } } accessible={true} + disabled={false} focusable={true} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityAction={[Function]} onBlur={[Function]} onClick={[Function]} @@ -767,9 +727,9 @@ exports[`TabList component tests TabList default props 1`] = ` ] } accessibilityLabel="Tab 3" - accessibilityPosInSet={0} + accessibilityPosInSet={3} accessibilityRole="tab" - accessibilitySetSize={0} + accessibilitySetSize={3} accessibilityState={ { "busy": undefined, @@ -777,6 +737,7 @@ exports[`TabList component tests TabList default props 1`] = ` "disabled": false, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": false, } @@ -790,17 +751,8 @@ exports[`TabList component tests TabList default props 1`] = ` } } accessible={true} + disabled={false} focusable={true} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityAction={[Function]} onBlur={[Function]} onClick={[Function]} @@ -946,9 +898,9 @@ exports[`TabList component tests TabList disabled list 1`] = ` ] } accessibilityLabel="Tab 1" - accessibilityPosInSet={0} + accessibilityPosInSet={1} accessibilityRole="tab" - accessibilitySetSize={0} + accessibilitySetSize={3} accessibilityState={ { "busy": undefined, @@ -956,6 +908,7 @@ exports[`TabList component tests TabList disabled list 1`] = ` "disabled": true, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": false, } @@ -969,17 +922,8 @@ exports[`TabList component tests TabList disabled list 1`] = ` } } accessible={true} + disabled={true} focusable={false} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityAction={[Function]} onBlur={[Function]} onClick={[Function]} @@ -1081,9 +1025,9 @@ exports[`TabList component tests TabList disabled list 1`] = ` ] } accessibilityLabel="Tab 2" - accessibilityPosInSet={0} + accessibilityPosInSet={2} accessibilityRole="tab" - accessibilitySetSize={0} + accessibilitySetSize={3} accessibilityState={ { "busy": undefined, @@ -1091,6 +1035,7 @@ exports[`TabList component tests TabList disabled list 1`] = ` "disabled": true, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": false, } @@ -1104,17 +1049,8 @@ exports[`TabList component tests TabList disabled list 1`] = ` } } accessible={true} + disabled={true} focusable={false} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityAction={[Function]} onBlur={[Function]} onClick={[Function]} @@ -1216,9 +1152,9 @@ exports[`TabList component tests TabList disabled list 1`] = ` ] } accessibilityLabel="Tab 3" - accessibilityPosInSet={0} + accessibilityPosInSet={3} accessibilityRole="tab" - accessibilitySetSize={0} + accessibilitySetSize={3} accessibilityState={ { "busy": undefined, @@ -1226,6 +1162,7 @@ exports[`TabList component tests TabList disabled list 1`] = ` "disabled": true, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": false, } @@ -1239,17 +1176,8 @@ exports[`TabList component tests TabList disabled list 1`] = ` } } accessible={true} + disabled={true} focusable={false} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityAction={[Function]} onBlur={[Function]} onClick={[Function]} @@ -1405,6 +1333,7 @@ exports[`TabList component tests TabList orientation 1`] = ` "disabled": false, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": false, } @@ -1418,17 +1347,8 @@ exports[`TabList component tests TabList orientation 1`] = ` } } accessible={true} + disabled={false} focusable={true} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityAction={[Function]} onBlur={[Function]} onClick={[Function]} @@ -1539,6 +1459,7 @@ exports[`TabList component tests TabList orientation 1`] = ` "disabled": false, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": false, } @@ -1552,17 +1473,8 @@ exports[`TabList component tests TabList orientation 1`] = ` } } accessible={true} + disabled={false} focusable={true} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityAction={[Function]} onBlur={[Function]} onClick={[Function]} @@ -1673,6 +1585,7 @@ exports[`TabList component tests TabList orientation 1`] = ` "disabled": false, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": false, } @@ -1686,17 +1599,8 @@ exports[`TabList component tests TabList orientation 1`] = ` } } accessible={true} + disabled={false} focusable={true} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityAction={[Function]} onBlur={[Function]} onClick={[Function]} @@ -1852,6 +1756,7 @@ exports[`TabList component tests TabList selected key 1`] = ` "disabled": false, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": true, } @@ -1865,17 +1770,8 @@ exports[`TabList component tests TabList selected key 1`] = ` } } accessible={true} + disabled={false} focusable={true} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityAction={[Function]} onBlur={[Function]} onClick={[Function]} @@ -1987,6 +1883,7 @@ exports[`TabList component tests TabList selected key 1`] = ` "disabled": false, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": false, } @@ -2000,17 +1897,8 @@ exports[`TabList component tests TabList selected key 1`] = ` } } accessible={true} + disabled={false} focusable={true} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityAction={[Function]} onBlur={[Function]} onClick={[Function]} @@ -2122,6 +2010,7 @@ exports[`TabList component tests TabList selected key 1`] = ` "disabled": false, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": false, } @@ -2135,17 +2024,8 @@ exports[`TabList component tests TabList selected key 1`] = ` } } accessible={true} + disabled={false} focusable={true} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityAction={[Function]} onBlur={[Function]} onClick={[Function]} @@ -2291,9 +2171,9 @@ exports[`TabList component tests TabList size 1`] = ` ] } accessibilityLabel="Tab 1" - accessibilityPosInSet={0} + accessibilityPosInSet={1} accessibilityRole="tab" - accessibilitySetSize={0} + accessibilitySetSize={3} accessibilityState={ { "busy": undefined, @@ -2301,6 +2181,7 @@ exports[`TabList component tests TabList size 1`] = ` "disabled": false, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": false, } @@ -2314,17 +2195,8 @@ exports[`TabList component tests TabList size 1`] = ` } } accessible={true} + disabled={false} focusable={true} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityAction={[Function]} onBlur={[Function]} onClick={[Function]} @@ -2426,9 +2298,9 @@ exports[`TabList component tests TabList size 1`] = ` ] } accessibilityLabel="Tab 2" - accessibilityPosInSet={0} + accessibilityPosInSet={2} accessibilityRole="tab" - accessibilitySetSize={0} + accessibilitySetSize={3} accessibilityState={ { "busy": undefined, @@ -2436,6 +2308,7 @@ exports[`TabList component tests TabList size 1`] = ` "disabled": false, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": false, } @@ -2449,17 +2322,8 @@ exports[`TabList component tests TabList size 1`] = ` } } accessible={true} + disabled={false} focusable={true} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityAction={[Function]} onBlur={[Function]} onClick={[Function]} @@ -2561,9 +2425,9 @@ exports[`TabList component tests TabList size 1`] = ` ] } accessibilityLabel="Tab 3" - accessibilityPosInSet={0} + accessibilityPosInSet={3} accessibilityRole="tab" - accessibilitySetSize={0} + accessibilitySetSize={3} accessibilityState={ { "busy": undefined, @@ -2571,6 +2435,7 @@ exports[`TabList component tests TabList size 1`] = ` "disabled": false, "expanded": undefined, "multiselectable": undefined, + "readOnly": undefined, "required": undefined, "selected": false, } @@ -2584,17 +2449,8 @@ exports[`TabList component tests TabList size 1`] = ` } } accessible={true} + disabled={false} focusable={true} - keyUpEvents={ - [ - { - "key": " ", - }, - { - "key": "Enter", - }, - ] - } onAccessibilityAction={[Function]} onBlur={[Function]} onClick={[Function]} diff --git a/packages/components/Text/src/__tests__/Text.test.tsx b/packages/components/Text/src/__tests__/Text.test.tsx index 49849f43fc..2d43707463 100644 --- a/packages/components/Text/src/__tests__/Text.test.tsx +++ b/packages/components/Text/src/__tests__/Text.test.tsx @@ -1,16 +1,24 @@ +import { act } from 'react'; + import * as renderer from 'react-test-renderer'; import { Text } from '../Text'; describe('Text component tests', () => { it('Text default', () => { - const tree = renderer.create(Text default).toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(Text default); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Text all props', () => { - const tree = renderer.create(All props).toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(All props); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Text all tokens', () => { @@ -19,8 +27,11 @@ describe('Text component tests', () => { fontWeight: '900', fontSize: 20, }); - const tree = renderer.create(All tokens).toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(All tokens); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Text variants render correctly with style', () => { @@ -28,11 +39,14 @@ describe('Text component tests', () => { marginBottom: 8, marginTop: 4, }; - const tree = renderer.create( - - Header Text - , - ); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( + + Header Text + , + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); }); diff --git a/packages/configs/jest-config/src/configureReactNativeJest.js b/packages/configs/jest-config/src/configureReactNativeJest.js index 5d6cf3bbaf..0e6102c767 100644 --- a/packages/configs/jest-config/src/configureReactNativeJest.js +++ b/packages/configs/jest-config/src/configureReactNativeJest.js @@ -19,6 +19,10 @@ export function configureReactNativeJest(platform, customConfig) { const config = jestPreset(ensurePlatform(platform, 'ios'), { roots: ['/src'], verbose: false, + // React 19 requires this global to be set for act() to work properly + globals: { + IS_REACT_ACT_ENVIRONMENT: true, + }, ...customConfig, }); if (isPnpmMode()) { diff --git a/packages/experimental/Drawer/src/__tests__/Drawer.test.tsx b/packages/experimental/Drawer/src/__tests__/Drawer.test.tsx index 32be8c3145..ed6516220b 100644 --- a/packages/experimental/Drawer/src/__tests__/Drawer.test.tsx +++ b/packages/experimental/Drawer/src/__tests__/Drawer.test.tsx @@ -1,3 +1,4 @@ +import { act } from 'react'; import { Text } from 'react-native'; import * as renderer from 'react-test-renderer'; @@ -10,13 +11,14 @@ jest.useFakeTimers(); // Disable Drawer test, as it's still failing despite the line above describe('Drawer component tests', () => { it('Drawer default', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( // Hello, // , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); }); diff --git a/packages/experimental/MenuButton/src/__tests__/MenuButton.test.tsx b/packages/experimental/MenuButton/src/__tests__/MenuButton.test.tsx index 57a0f1bb3e..fefc8ec0e2 100644 --- a/packages/experimental/MenuButton/src/__tests__/MenuButton.test.tsx +++ b/packages/experimental/MenuButton/src/__tests__/MenuButton.test.tsx @@ -1,3 +1,5 @@ +import { act } from 'react'; + import * as renderer from 'react-test-renderer'; import type { MenuButtonItemProps } from '..'; @@ -43,6 +45,9 @@ it('ContextualMenu default', () => { text: 'Menu Item', }, ]; - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); diff --git a/packages/experimental/Overflow/src/__tests__/Overflow.test.tsx b/packages/experimental/Overflow/src/__tests__/Overflow.test.tsx index c99a0f52c6..aa920b1907 100644 --- a/packages/experimental/Overflow/src/__tests__/Overflow.test.tsx +++ b/packages/experimental/Overflow/src/__tests__/Overflow.test.tsx @@ -1,6 +1,7 @@ import { ButtonV1 } from '@fluentui-react-native/button'; import { Menu, MenuPopover, MenuTrigger, MenuItem } from '@fluentui-react-native/menu'; import * as renderer from 'react-test-renderer'; +import { act } from 'react'; import { Overflow, OverflowItem, useOverflowMenu } from '../'; @@ -28,8 +29,9 @@ const OverflowMenu = () => { describe('Overflow component tests', () => { it('Overflow default', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( {items.map((item) => ( @@ -38,8 +40,9 @@ describe('Overflow component tests', () => { ))} , - ) - .toJSON(); + ); + }); + const tree = component!.toJSON(); expect(tree).toMatchSnapshot(); }); }); diff --git a/packages/experimental/Shadow/src/__tests__/Shadow.test.tsx b/packages/experimental/Shadow/src/__tests__/Shadow.test.tsx index 6b82ed79d6..7c7ee1820c 100644 --- a/packages/experimental/Shadow/src/__tests__/Shadow.test.tsx +++ b/packages/experimental/Shadow/src/__tests__/Shadow.test.tsx @@ -1,4 +1,5 @@ import * as React from 'react'; +import { act } from 'react'; import { Text, View, type ViewStyle } from 'react-native'; import { mergeStyles, useFluentTheme } from '@fluentui-react-native/framework'; @@ -62,83 +63,131 @@ describe('Shadow component tests', () => { }); it('Shadow (depth=2)', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Shadow (depth=4)', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Shadow (depth=8)', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Shadow (depth=16)', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Shadow (depth=28)', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Shadow (depth=64)', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Brand shadow (depth=2)', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Brand shadow (depth=4)', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Brand shadow (depth=8)', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Brand shadow (depth=16)', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Brand shadow (depth=28)', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Brand shadow (depth=64)', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Pressable that has a shadow vs. pressable without shadow', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Shadow on a child with margin and padding', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Shadow on a child with border radius', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Shadow on a child with border width', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); afterAll(() => { diff --git a/packages/experimental/Shadow/src/__tests__/__snapshots__/Shadow.test.tsx.snap b/packages/experimental/Shadow/src/__tests__/__snapshots__/Shadow.test.tsx.snap index 63d2cc9f0d..500fda50ca 100644 --- a/packages/experimental/Shadow/src/__tests__/__snapshots__/Shadow.test.tsx.snap +++ b/packages/experimental/Shadow/src/__tests__/__snapshots__/Shadow.test.tsx.snap @@ -236,8 +236,6 @@ exports[`Shadow component tests Pressable that has a shadow vs. pressable withou onBlur={[Function]} onClick={[Function]} onFocus={[Function]} - onMouseEnter={[Function]} - onMouseLeave={[Function]} onResponderGrant={[Function]} onResponderMove={[Function]} onResponderRelease={[Function]} @@ -263,8 +261,6 @@ exports[`Shadow component tests Pressable that has a shadow vs. pressable withou onBlur={[Function]} onClick={[Function]} onFocus={[Function]} - onMouseEnter={[Function]} - onMouseLeave={[Function]} onResponderGrant={[Function]} onResponderMove={[Function]} onResponderRelease={[Function]} diff --git a/packages/experimental/Shimmer/src/Shimmer.test.tsx b/packages/experimental/Shimmer/src/Shimmer.test.tsx index b7d72ce93e..88c4167ec1 100644 --- a/packages/experimental/Shimmer/src/Shimmer.test.tsx +++ b/packages/experimental/Shimmer/src/Shimmer.test.tsx @@ -1,3 +1,5 @@ +import { act } from 'react'; + import * as renderer from 'react-test-renderer'; import { Shimmer } from './Shimmer'; @@ -37,22 +39,26 @@ function shimmerRects(): Array { const style = { width: 300, height: 100 }; +// mocks out setTimeout and other timer functions with mock functions, test will fail without this as we're using Animated API +jest.useFakeTimers(); + describe('Shimmer component tests', () => { - beforeAll(() => { - // mocks out setTimeout and other timer functions with mock functions, test will fail without this as we're using Animated API - jest.useFakeTimers(); - jest.mock('react-native/Libraries/Animated/NativeAnimatedHelper'); - }); it('Shimmer default', async () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); - await renderer.act(async () => null); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); + await act(async () => null); }); it('Shimmer with style prop', async () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); - await renderer.act(async () => null); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); + await act(async () => null); }); }); diff --git a/packages/experimental/Tooltip/src/__tests__/Tooltip.test.tsx b/packages/experimental/Tooltip/src/__tests__/Tooltip.test.tsx index 9dfe33f119..368d259a25 100644 --- a/packages/experimental/Tooltip/src/__tests__/Tooltip.test.tsx +++ b/packages/experimental/Tooltip/src/__tests__/Tooltip.test.tsx @@ -1,17 +1,20 @@ import { ButtonV1 } from '@fluentui-react-native/button'; import * as renderer from 'react-test-renderer'; +import { act } from 'react'; import { Tooltip } from '../Tooltip'; describe('Tooltip component tests', () => { it('Tooltip default', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( Your component , - ) - .toJSON(); + ); + }); + const tree = component!.toJSON(); expect(tree).toMatchSnapshot(); }); }); diff --git a/packages/framework-base/src/component-patterns/render.ts b/packages/framework-base/src/component-patterns/render.ts index a5133d779e..0e1542169c 100644 --- a/packages/framework-base/src/component-patterns/render.ts +++ b/packages/framework-base/src/component-patterns/render.ts @@ -44,8 +44,13 @@ export function renderForJsxRuntime( jsxFn = ReactJSX.jsx; } } + // Extract key from props to avoid React 19 warning about spreading key prop + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const { key: propsKey, ...propsWithoutKey } = props as any; + // Use explicitly passed key, or fall back to key from props + const finalKey = key ?? propsKey; // now call the appropriate jsx function to render the component - return jsxFn(type, props, key); + return jsxFn(type, propsWithoutKey, finalKey); } export function renderForClassicRuntime(type: RenderType, props: TProps, ...children: React.ReactNode[]): RenderResult { diff --git a/packages/framework/composition/src/__snapshots__/composeFactory.test.tsx.snap b/packages/framework/composition/src/__snapshots__/composeFactory.test.tsx.snap index 66a8f07fbd..13bb337653 100644 --- a/packages/framework/composition/src/__snapshots__/composeFactory.test.tsx.snap +++ b/packages/framework/composition/src/__snapshots__/composeFactory.test.tsx.snap @@ -24,7 +24,7 @@ exports[`composeFactory test suite Base component render 1`] = ` `; -exports[`composeFactory test suite Base component render 2`] = ` +exports[`composeFactory test suite Customized component render 1`] = ` { it('Base component render', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); - it('Base component render', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + it('Customized component render', () => { + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); }); diff --git a/packages/framework/framework/src/compressible.test.tsx b/packages/framework/framework/src/compressible.test.tsx index a68f826ebc..011ecaef44 100644 --- a/packages/framework/framework/src/compressible.test.tsx +++ b/packages/framework/framework/src/compressible.test.tsx @@ -1,5 +1,6 @@ /** @jsxImportSource @fluentui-react-native/framework-base */ import * as React from 'react'; +import { act } from 'react'; import type { TextProps, TextStyle } from 'react-native'; import { Text, View } from 'react-native'; @@ -103,26 +104,28 @@ const Label = compressible((props: LabelProps, useToken describe('compressible tests', () => { it('Two labels, one with caption and one without', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Two labels, one plugging in SuperHeader instead', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); }); diff --git a/packages/framework/use-slot/src/useSlot.test.tsx b/packages/framework/use-slot/src/useSlot.test.tsx index 2a76b5c91b..c37f28a581 100644 --- a/packages/framework/use-slot/src/useSlot.test.tsx +++ b/packages/framework/use-slot/src/useSlot.test.tsx @@ -5,6 +5,7 @@ import { Text, View } from 'react-native'; import { type FunctionComponent, mergeStyles } from '@fluentui-react-native/framework-base'; import * as renderer from 'react-test-renderer'; +import { act } from 'react'; import { phasedComponent, directComponent } from '@fluentui-react-native/framework-base'; import { useSlot } from './useSlot'; @@ -82,34 +83,44 @@ const styleWithColor: TextProps['style'] = { color: 'blue' }; describe('useSlot tests', () => { /** first render the component with no updates */ it('Two base text elements rendering, with and without styles', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( No Style With Style , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Header and caption text render as expected', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( Header text Caption text , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('Multi-level text elements are equivalent', () => { - const tree1 = renderer.create(HeaderCaptionText).toJSON(); + let component1: renderer.ReactTestRenderer; + let component2: renderer.ReactTestRenderer; + act(() => { + component1 = renderer.create(HeaderCaptionText); + }); + const tree1 = component1!.toJSON(); expect(tree1).toMatchSnapshot(); - const tree2 = renderer.create(HeaderCaptionText).toJSON(); + act(() => { + component2 = renderer.create(HeaderCaptionText); + }); + const tree2 = component2!.toJSON(); expect(tree2).toMatchSnapshot(); - expect(tree1['HeaderCaptionText1']).toEqual(tree2['HeaderCaptionText2']); + expect(tree1!['HeaderCaptionText1']).toEqual(tree2!['HeaderCaptionText2']); }); }); diff --git a/packages/framework/use-slots/src/buildUseSlots.test.tsx b/packages/framework/use-slots/src/buildUseSlots.test.tsx index 5b48b3e6e0..ddd866b58f 100644 --- a/packages/framework/use-slots/src/buildUseSlots.test.tsx +++ b/packages/framework/use-slots/src/buildUseSlots.test.tsx @@ -1,4 +1,5 @@ /** @jsxImportSource @fluentui-react-native/framework-base */ +import { act } from 'react'; import type { ViewProps, TextProps } from 'react-native'; import { View, Text } from 'react-native'; @@ -37,7 +38,10 @@ const CompBase = stagedComponent((props: ViewProps) => { describe('buildUseSlots test suite', () => { it('Simple component render', () => { - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); }); diff --git a/packages/framework/use-slots/src/useSlots.samples.test.tsx b/packages/framework/use-slots/src/useSlots.samples.test.tsx index 804c04ee73..506791f607 100644 --- a/packages/framework/use-slots/src/useSlots.samples.test.tsx +++ b/packages/framework/use-slots/src/useSlots.samples.test.tsx @@ -1,4 +1,5 @@ /** @jsxImportSource @fluentui-react-native/framework-base */ +import { act } from 'react'; import { mergeProps } from '@fluentui-react-native/framework-base'; import { phasedComponent } from '@fluentui-react-native/framework-base'; import * as renderer from 'react-test-renderer'; @@ -73,15 +74,16 @@ describe('useSlots sample code test suite', () => { /** * First render the staged component. This invokes the wrapper that was built by the stagedComponent function */ - const wrapper = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( Staged component at one level Standard component of a single level , - ) - .toJSON(); - expect(wrapper).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); /** @@ -152,15 +154,16 @@ describe('useSlots sample code test suite', () => { /** * First render the staged component. This invokes the wrapper that was built by the stagedComponent function */ - const wrapper = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(
Staged component with two levels Standard component with two levels
, - ) - .toJSON(); - expect(wrapper).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); /** @@ -252,8 +255,9 @@ describe('useSlots sample code test suite', () => { * Render the two sets of components. Note in the snapshots how the render tree layers for the standard approach are starting * to add up. */ - const wrapper = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(
--- SIMPLE USAGE COMPARISON --- Standard HOC @@ -273,8 +277,8 @@ describe('useSlots sample code test suite', () => { Staged HOC with caption and customizations
, - ) - .toJSON(); - expect(wrapper).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); }); diff --git a/packages/framework/use-styling/src/useStyling.samples.test.tsx b/packages/framework/use-styling/src/useStyling.samples.test.tsx index a38ef4c65a..8b9e557965 100644 --- a/packages/framework/use-styling/src/useStyling.samples.test.tsx +++ b/packages/framework/use-styling/src/useStyling.samples.test.tsx @@ -1,4 +1,5 @@ import * as React from 'react'; +import { act } from 'react'; import type { TextProps, ColorValue } from 'react-native'; import { Text, View } from 'react-native'; @@ -129,8 +130,11 @@ describe('useStyling samples', () => { /** first render the component with no updates */ it('Sample1Text rendering with no overrides', () => { - const tree = renderer.create(Sample1a).toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(Sample1a); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); /** now re-theme the component via the components in the theme */ @@ -143,8 +147,11 @@ describe('useStyling samples', () => { }, }, }); - const tree = renderer.create(Sample1b).toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(Sample1b); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); /** @@ -210,15 +217,16 @@ describe('useStyling samples', () => { /** rendering the Sample2 component with the base theme */ it('Sample2Text rendering with defaults and a color override', () => { themeHelper.setActive(); - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( Sample2 with defaults Sample2 with color override via prop , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); /** now re-theme the component via the components in the theme */ @@ -235,14 +243,15 @@ describe('useStyling samples', () => { }, }, }); - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( Sample2 with theme overrides set Sample2 with theme and color prop override , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); }); diff --git a/packages/framework/use-tokens/src/useTokens.samples.test.tsx b/packages/framework/use-tokens/src/useTokens.samples.test.tsx index 6816ba4dde..a7bdfd1961 100644 --- a/packages/framework/use-tokens/src/useTokens.samples.test.tsx +++ b/packages/framework/use-tokens/src/useTokens.samples.test.tsx @@ -1,4 +1,5 @@ import * as React from 'react'; +import { act } from 'react'; import type { TextProps } from 'react-native'; import { Text, View } from 'react-native'; @@ -131,8 +132,11 @@ describe('useTokens samples', () => { /** first render the component with no updates */ it('Sample1Text rendering with no overrides', () => { - const tree = renderer.create(Sample1a).toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(Sample1a); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); /** now re-theme the component via the components in the theme */ @@ -145,8 +149,11 @@ describe('useTokens samples', () => { }, }, }); - const tree = renderer.create(Sample1b).toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(Sample1b); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); /** @@ -184,15 +191,16 @@ describe('useTokens samples', () => { /** rendering the Sample2 component with the base theme */ it('Sample2Text rendering with defaults and a color override', () => { - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( Sample2 with defaults Sample2 with color override via prop , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); /** now re-theme the component via the components in the theme */ @@ -205,14 +213,15 @@ describe('useTokens samples', () => { }, }, }); - const tree = renderer - .create( + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create( Sample2 with theme overrides set Sample2 with theme and color prop override , - ) - .toJSON(); - expect(tree).toMatchSnapshot(); + ); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); }); diff --git a/packages/utils/interactive-hooks/src/__tests__/useConst.test.tsx b/packages/utils/interactive-hooks/src/__tests__/useConst.test.tsx index c53e45937e..6330eb55b1 100644 --- a/packages/utils/interactive-hooks/src/__tests__/useConst.test.tsx +++ b/packages/utils/interactive-hooks/src/__tests__/useConst.test.tsx @@ -1,4 +1,5 @@ import * as React from 'react'; +import { act } from 'react'; import { validateHookValueNotChanged } from '@fluentui-react-native/test-tools'; import * as renderer from 'react-test-renderer'; @@ -18,12 +19,17 @@ describe('useConst', () => { return {value}; }; - const wrapper = renderer.create(); - const firstValue = wrapper.toJSON(); + let wrapper: renderer.ReactTestRenderer; + act(() => { + wrapper = renderer.create(); + }); + const firstValue = wrapper!.toJSON(); // Re-render the component - wrapper.update(); + act(() => { + wrapper.update(); + }); // Text should be the same - expect(wrapper.toJSON()).toBe(firstValue); + expect(wrapper!.toJSON()).toBe(firstValue); // Function shouldn't have been called again expect(initializer).toHaveBeenCalledTimes(1); }); @@ -36,9 +42,14 @@ describe('useConst', () => { return {value}; }; - const wrapper = renderer.create(); + let wrapper: renderer.ReactTestRenderer; + act(() => { + wrapper = renderer.create(); + }); // Re-render the component - wrapper.update(); + act(() => { + wrapper.update(); + }); // Function shouldn't have been called again expect(initializer).toHaveBeenCalledTimes(1); }); diff --git a/packages/utils/interactive-hooks/src/__tests__/useControllableValue.test.tsx b/packages/utils/interactive-hooks/src/__tests__/useControllableValue.test.tsx index 987cd34f60..a9b3c44c40 100644 --- a/packages/utils/interactive-hooks/src/__tests__/useControllableValue.test.tsx +++ b/packages/utils/interactive-hooks/src/__tests__/useControllableValue.test.tsx @@ -1,4 +1,5 @@ import * as React from 'react'; +import { act } from 'react'; import { validateHookValueNotChanged } from '@fluentui-react-native/test-tools'; import * as renderer from 'react-test-renderer'; @@ -13,16 +14,26 @@ describe('useControllableValue', () => { return ; }; - const wrapper1 = renderer.create(); + let wrapper1: renderer.ReactTestRenderer; + act(() => { + wrapper1 = renderer.create(); + }); expect(resultValue!).toBe(true); - wrapper1.update(); + act(() => { + wrapper1.update(); + }); expect(resultValue!).toBe(false); - const wrapper2 = renderer.create(); + let wrapper2: renderer.ReactTestRenderer; + act(() => { + wrapper2 = renderer.create(); + }); expect(resultValue!).toBe(false); - wrapper2.update(); + act(() => { + wrapper2.update(); + }); expect(resultValue!).toBe(true); }); @@ -33,7 +44,9 @@ describe('useControllableValue', () => { return ; }; - renderer.create(); + act(() => { + renderer.create(); + }); expect(resultValue!).toBe(true); }); @@ -44,10 +57,15 @@ describe('useControllableValue', () => { return ; }; - const wrapper = renderer.create(); + let wrapper: renderer.ReactTestRenderer; + act(() => { + wrapper = renderer.create(); + }); expect(resultValue!).toBe(true); - wrapper.update(); + act(() => { + wrapper.update(); + }); expect(resultValue!).toBe(true); }); diff --git a/packages/utils/interactive-hooks/src/__tests__/useKeyProps.test.tsx b/packages/utils/interactive-hooks/src/__tests__/useKeyProps.test.tsx index 4ff3950cf0..4843a87414 100644 --- a/packages/utils/interactive-hooks/src/__tests__/useKeyProps.test.tsx +++ b/packages/utils/interactive-hooks/src/__tests__/useKeyProps.test.tsx @@ -1,3 +1,4 @@ +import { act } from 'react'; import { Pressable } from 'react-native'; import * as renderer from 'react-test-renderer'; @@ -20,8 +21,11 @@ it('Pressable with useKeyProps', () => { return ; }; - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); it('useKeyProps called twice', () => { @@ -32,6 +36,9 @@ it('useKeyProps called twice', () => { return ; }; - const tree = renderer.create().toJSON(); - expect(tree).toMatchSnapshot(); + let component: renderer.ReactTestRenderer; + act(() => { + component = renderer.create(); + }); + expect(component!.toJSON()).toMatchSnapshot(); }); diff --git a/packages/utils/test-tools/package.json b/packages/utils/test-tools/package.json index 77acc2d048..d07e435844 100644 --- a/packages/utils/test-tools/package.json +++ b/packages/utils/test-tools/package.json @@ -43,15 +43,15 @@ "@fluentui-react-native/scripts": "workspace:*", "@react-native/babel-preset": "^0.81.0", "@types/jest": "^29.0.0", - "@types/react": "^18.2.0", - "@types/react-test-renderer": "^18.2.0", - "react": "18.2.0", - "react-native": "^0.74.0", - "react-test-renderer": "18.2.0" + "@types/react": "~19.1.0", + "@types/react-test-renderer": "^19.1.0", + "react": "19.1.0", + "react-native": "^0.81.0", + "react-test-renderer": "19.1.0" }, "peerDependencies": { - "react": "18.2.0", - "react-native": "^0.73.0 || ^0.74.0" + "react": "18.2.0 || 19.0.0 || 19.1.0", + "react-native": "^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0" }, "rnx-kit": { "kitType": "library", diff --git a/packages/utils/test-tools/src/baseTests.tsx b/packages/utils/test-tools/src/baseTests.tsx index ec6a16b9ca..58ca08c01b 100644 --- a/packages/utils/test-tools/src/baseTests.tsx +++ b/packages/utils/test-tools/src/baseTests.tsx @@ -1,4 +1,5 @@ import * as React from 'react'; +import { act } from 'react'; import * as renderer from 'react-test-renderer'; @@ -18,13 +19,18 @@ export function validateHookValueNotChanged[]>( return ; }; - const wrapper = renderer.create(); + let wrapper: renderer.ReactTestRenderer; + act(() => { + wrapper = renderer.create(); + }); expect(callCount).toBe(1); const firstValues = latestValues; expect(firstValues).toBeDefined(); latestValues = undefined; - wrapper.update(); + act(() => { + wrapper.update(); + }); expect(callCount).toBe(2); expect(latestValues).toBeDefined(); expect(latestValues.length).toEqual(firstValues!.length); diff --git a/yarn.lock b/yarn.lock index cb8edd287e..931aa4f5db 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4943,14 +4943,14 @@ __metadata: "@fluentui-react-native/theme-types": "workspace:*" "@react-native/babel-preset": "npm:^0.81.0" "@types/jest": "npm:^29.0.0" - "@types/react": "npm:^18.2.0" - "@types/react-test-renderer": "npm:^18.2.0" - react: "npm:18.2.0" - react-native: "npm:^0.74.0" - react-test-renderer: "npm:18.2.0" + "@types/react": "npm:~19.1.0" + "@types/react-test-renderer": "npm:^19.1.0" + react: "npm:19.1.0" + react-native: "npm:^0.81.0" + react-test-renderer: "npm:19.1.0" peerDependencies: - react: 18.2.0 - react-native: ^0.73.0 || ^0.74.0 + react: 18.2.0 || 19.0.0 || 19.1.0 + react-native: ^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.0 languageName: unknown linkType: soft From 6f27ba08f80cd96e2d52565eef088ac6ac9d6c64 Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Tue, 3 Feb 2026 18:32:39 -0800 Subject: [PATCH 25/29] Change files --- ...-react-native-158d9570-486d-4514-8aaa-b486039b0288.json | 7 +++++++ ...tive-adapters-7680741e-f8da-4e5b-951f-d3abdef2e5f8.json | 7 +++++++ ...android-theme-e919d661-353b-40cd-9fb0-552742a9d2fd.json | 7 +++++++ ...e-apple-theme-5fcfc73c-22a2-4fe1-9d40-cf996b35e7d5.json | 7 +++++++ ...native-avatar-aef6dd7a-c5f1-407d-9b4f-41f84be772b0.json | 7 +++++++ ...-native-badge-3aae3842-6f98-4039-94c0-cbe9a548a10d.json | 7 +++++++ ...native-button-bbe1149d-921f-458d-8ccb-9c4fd0b1a35c.json | 7 +++++++ ...ative-callout-7d0cd233-6c10-4ff7-8bd5-2674e52f0b4f.json | 7 +++++++ ...tive-checkbox-bd49a910-ab38-4fb3-9a67-3a7c116c4fcc.json | 7 +++++++ ...t-native-chip-b7453eaf-7323-401f-9719-b178e955a3fb.json | 7 +++++++ ...e-composition-a4724b89-133f-40ad-a5af-6ab2b2212a75.json | 7 +++++++ ...ntextual-menu-bba24827-af2a-41ef-8ff8-693b742618ca.json | 7 +++++++ ...default-theme-9b3ba552-2005-4562-944f-b90c47f5f513.json | 7 +++++++ ...ative-divider-3b1c3f37-74b1-48ec-bf4d-d0cbddd59968.json | 7 +++++++ ...native-drawer-c3c2e365-3ef7-4935-be32-88d8cb8caad8.json | 7 +++++++ ...tive-dropdown-6917fda7-d56f-4252-9d86-ad299be901bb.json | 7 +++++++ ...e-e2e-testing-d3bd364b-6012-4c56-80cc-4663beb62cbb.json | 7 +++++++ ...ity-indicator-6cea51ea-d5be-499a-822a-2088b3c6ea91.json | 7 +++++++ ...nce-additions-8cdb444a-3f6e-4ea7-b426-c6e7192ad9e1.json | 7 +++++++ ...mental-avatar-a3e532ab-6919-41d1-bab8-2018d01c239d.json | 7 +++++++ ...ntal-checkbox-6a6a0114-4893-46fa-94f6-e82196e9349a.json | 7 +++++++ ...ntal-expander-6848a05b-2863-45a5-bcbb-719d4615372e.json | 7 +++++++ ...l-menu-button-803056b0-5b5a-4cdf-a30e-2f24748b84e7.json | 7 +++++++ ...e-date-picker-905caf15-09f5-4707-bcc9-ba2d8d3fe6c8.json | 7 +++++++ ...-font-metrics-f86468f7-4e09-48f6-a3fa-2d456d97b45e.json | 7 +++++++ ...mental-shadow-563f2fb0-41bb-4cc6-9670-f4546fbd2a0a.json | 7 +++++++ ...ental-shimmer-a394d9a9-4df7-47a6-aed6-42db032ee618.json | 7 +++++++ ...cus-trap-zone-0b0cf3f0-9175-4f83-9994-3d28b06b6dba.json | 7 +++++++ ...ve-focus-zone-15788ba1-4227-4770-9b56-a9dce398f6bd.json | 7 +++++++ ...ive-framework-b7e798cd-5f38-404e-9f72-e489aa35df8f.json | 7 +++++++ ...ramework-base-be7e5bfd-560e-440b-8173-8410b7241023.json | 7 +++++++ ...t-native-icon-72b02aa5-0f5f-4c64-87c2-9acff295e9e3.json | 7 +++++++ ...mutable-merge-5bae8eb3-9fd7-4ba4-b974-7d8422d66495.json | 7 +++++++ ...-native-input-31c128c7-273b-4cd4-8eff-cec6d620af17.json | 7 +++++++ ...ractive-hooks-2b1cb3c4-620a-43d5-8579-17f99c00fd39.json | 7 +++++++ ...t-native-link-85b28ac0-4de6-423a-9ff3-261a4b97cfde.json | 7 +++++++ ...ve-memo-cache-df68ad81-7e45-4103-81e7-c092390b8a20.json | 7 +++++++ ...t-native-menu-28842fed-2751-4688-a1fd-09de38982258.json | 7 +++++++ ...e-menu-button-dcc65aa2-7d02-4555-ab15-fe1a191b6f66.json | 7 +++++++ ...e-merge-props-8fa82508-8265-4038-8b3f-e03478b9e9e2.json | 7 +++++++ ...-notification-f414c2cc-4a22-48d1-bc45-9bd19136ddf9.json | 7 +++++++ ...tive-overflow-1c28e08b-4a07-46dd-a3be-68392c56902b.json | 7 +++++++ ...ative-persona-144a71bf-b20b-4ffe-bf07-43a434a6aca5.json | 7 +++++++ ...-persona-coin-5cdbea93-38f2-4706-98be-8f08508efc03.json | 7 +++++++ ...ative-popover-defd02de-be09-4246-a97c-c968740a62b0.json | 7 +++++++ ...ive-pressable-bb7ffd6e-0d09-4f41-b85e-2e7aa6602301.json | 7 +++++++ ...e-radio-group-ca3ef8ce-2999-4565-a56e-354d9ec87d85.json | 7 +++++++ ...ive-separator-b8a0742d-fee1-401f-81fb-af7f3e3b976c.json | 7 +++++++ ...ative-spinner-b3d546f4-b5b6-40fd-a79b-5ed2b9b6a33b.json | 7 +++++++ ...-native-stack-ef881a5d-ec44-4249-90ea-73f9a255950c.json | 7 +++++++ ...styling-utils-4531c34a-f85f-4e52-b4ed-0dc9bd580237.json | 7 +++++++ ...native-switch-6aa2a3dc-35b9-4da9-b523-f2deab5ef363.json | 7 +++++++ ...ative-tablist-f53e2b12-b199-4cc2-ab0c-8027dba4454c.json | 7 +++++++ ...e-tester-core-b1206513-c588-4720-8e75-e41461ea7a6e.json | 7 +++++++ ...t-native-text-6e73f274-be18-4d36-b6f7-fca60e8b0e78.json | 7 +++++++ ...-native-theme-09de394c-8195-486d-abb2-7607a13c9d13.json | 7 +++++++ ...-theme-tokens-a36dab8b-fb48-474e-a0a9-2c1d4b6124ef.json | 7 +++++++ ...e-theme-types-564ecaef-3250-44e2-ba4e-e6b76875d7ab.json | 7 +++++++ ...ed-stylesheet-94120b57-4ff6-43f3-96db-07bcda8edf9e.json | 7 +++++++ ...theming-utils-390be6bd-ac07-42a1-bd33-493799d3e303.json | 7 +++++++ ...native-tokens-b959f267-ece4-4a4b-844e-742f97079040.json | 7 +++++++ ...ative-tooltip-1bec4cf9-b1a7-4b51-ba7a-73324340126c.json | 7 +++++++ ...tive-use-slot-62047d78-07b5-402a-8849-b9561f33da1e.json | 7 +++++++ ...ive-use-slots-14c8e10e-e207-4206-85ea-51d2d9585bdd.json | 7 +++++++ ...e-use-styling-c60bd406-7f76-4356-b8e7-02f74155ec39.json | 7 +++++++ ...ve-use-tokens-ac731fa6-04a0-45e3-a9d7-8294cd2196f8.json | 7 +++++++ ...vibrancy-view-b48a1831-583d-4894-9d8a-3c0922476392.json | 7 +++++++ ...e-win32-theme-9aa419f3-18d5-47ae-b57f-8fb002b5134b.json | 7 +++++++ ...on-composable-bc59802b-fa31-4a7f-bde7-c5975625217d.json | 7 +++++++ ...ation-compose-282238a8-d430-49e2-a5a9-7f9217c7ae2a.json | 7 +++++++ ...tion-settings-f15b3963-36da-4b25-a934-6e66d3602f15.json | 7 +++++++ ...dation-tokens-a5a8e753-4660-4ed7-a9c1-b9d079fbe5b7.json | 7 +++++++ ...heme-registry-5b82b8ca-a04a-413e-9a6e-aab251d21df3.json | 7 +++++++ ...emed-settings-e0ae5714-963b-4e6f-b1a9-c5747c7d6ceb.json | 7 +++++++ ...-theming-ramp-5339e29c-0dd6-45dd-ba4a-eac74d6752fd.json | 7 +++++++ ...-react-native-31c2caec-acc2-44b6-a2ca-c04f7fcd0dc9.json | 7 +++++++ 76 files changed, 532 insertions(+) create mode 100644 change/@fluentui-react-native-158d9570-486d-4514-8aaa-b486039b0288.json create mode 100644 change/@fluentui-react-native-adapters-7680741e-f8da-4e5b-951f-d3abdef2e5f8.json create mode 100644 change/@fluentui-react-native-android-theme-e919d661-353b-40cd-9fb0-552742a9d2fd.json create mode 100644 change/@fluentui-react-native-apple-theme-5fcfc73c-22a2-4fe1-9d40-cf996b35e7d5.json create mode 100644 change/@fluentui-react-native-avatar-aef6dd7a-c5f1-407d-9b4f-41f84be772b0.json create mode 100644 change/@fluentui-react-native-badge-3aae3842-6f98-4039-94c0-cbe9a548a10d.json create mode 100644 change/@fluentui-react-native-button-bbe1149d-921f-458d-8ccb-9c4fd0b1a35c.json create mode 100644 change/@fluentui-react-native-callout-7d0cd233-6c10-4ff7-8bd5-2674e52f0b4f.json create mode 100644 change/@fluentui-react-native-checkbox-bd49a910-ab38-4fb3-9a67-3a7c116c4fcc.json create mode 100644 change/@fluentui-react-native-chip-b7453eaf-7323-401f-9719-b178e955a3fb.json create mode 100644 change/@fluentui-react-native-composition-a4724b89-133f-40ad-a5af-6ab2b2212a75.json create mode 100644 change/@fluentui-react-native-contextual-menu-bba24827-af2a-41ef-8ff8-693b742618ca.json create mode 100644 change/@fluentui-react-native-default-theme-9b3ba552-2005-4562-944f-b90c47f5f513.json create mode 100644 change/@fluentui-react-native-divider-3b1c3f37-74b1-48ec-bf4d-d0cbddd59968.json create mode 100644 change/@fluentui-react-native-drawer-c3c2e365-3ef7-4935-be32-88d8cb8caad8.json create mode 100644 change/@fluentui-react-native-dropdown-6917fda7-d56f-4252-9d86-ad299be901bb.json create mode 100644 change/@fluentui-react-native-e2e-testing-d3bd364b-6012-4c56-80cc-4663beb62cbb.json create mode 100644 change/@fluentui-react-native-experimental-activity-indicator-6cea51ea-d5be-499a-822a-2088b3c6ea91.json create mode 100644 change/@fluentui-react-native-experimental-appearance-additions-8cdb444a-3f6e-4ea7-b426-c6e7192ad9e1.json create mode 100644 change/@fluentui-react-native-experimental-avatar-a3e532ab-6919-41d1-bab8-2018d01c239d.json create mode 100644 change/@fluentui-react-native-experimental-checkbox-6a6a0114-4893-46fa-94f6-e82196e9349a.json create mode 100644 change/@fluentui-react-native-experimental-expander-6848a05b-2863-45a5-bcbb-719d4615372e.json create mode 100644 change/@fluentui-react-native-experimental-menu-button-803056b0-5b5a-4cdf-a30e-2f24748b84e7.json create mode 100644 change/@fluentui-react-native-experimental-native-date-picker-905caf15-09f5-4707-bcc9-ba2d8d3fe6c8.json create mode 100644 change/@fluentui-react-native-experimental-native-font-metrics-f86468f7-4e09-48f6-a3fa-2d456d97b45e.json create mode 100644 change/@fluentui-react-native-experimental-shadow-563f2fb0-41bb-4cc6-9670-f4546fbd2a0a.json create mode 100644 change/@fluentui-react-native-experimental-shimmer-a394d9a9-4df7-47a6-aed6-42db032ee618.json create mode 100644 change/@fluentui-react-native-focus-trap-zone-0b0cf3f0-9175-4f83-9994-3d28b06b6dba.json create mode 100644 change/@fluentui-react-native-focus-zone-15788ba1-4227-4770-9b56-a9dce398f6bd.json create mode 100644 change/@fluentui-react-native-framework-b7e798cd-5f38-404e-9f72-e489aa35df8f.json create mode 100644 change/@fluentui-react-native-framework-base-be7e5bfd-560e-440b-8173-8410b7241023.json create mode 100644 change/@fluentui-react-native-icon-72b02aa5-0f5f-4c64-87c2-9acff295e9e3.json create mode 100644 change/@fluentui-react-native-immutable-merge-5bae8eb3-9fd7-4ba4-b974-7d8422d66495.json create mode 100644 change/@fluentui-react-native-input-31c128c7-273b-4cd4-8eff-cec6d620af17.json create mode 100644 change/@fluentui-react-native-interactive-hooks-2b1cb3c4-620a-43d5-8579-17f99c00fd39.json create mode 100644 change/@fluentui-react-native-link-85b28ac0-4de6-423a-9ff3-261a4b97cfde.json create mode 100644 change/@fluentui-react-native-memo-cache-df68ad81-7e45-4103-81e7-c092390b8a20.json create mode 100644 change/@fluentui-react-native-menu-28842fed-2751-4688-a1fd-09de38982258.json create mode 100644 change/@fluentui-react-native-menu-button-dcc65aa2-7d02-4555-ab15-fe1a191b6f66.json create mode 100644 change/@fluentui-react-native-merge-props-8fa82508-8265-4038-8b3f-e03478b9e9e2.json create mode 100644 change/@fluentui-react-native-notification-f414c2cc-4a22-48d1-bc45-9bd19136ddf9.json create mode 100644 change/@fluentui-react-native-overflow-1c28e08b-4a07-46dd-a3be-68392c56902b.json create mode 100644 change/@fluentui-react-native-persona-144a71bf-b20b-4ffe-bf07-43a434a6aca5.json create mode 100644 change/@fluentui-react-native-persona-coin-5cdbea93-38f2-4706-98be-8f08508efc03.json create mode 100644 change/@fluentui-react-native-popover-defd02de-be09-4246-a97c-c968740a62b0.json create mode 100644 change/@fluentui-react-native-pressable-bb7ffd6e-0d09-4f41-b85e-2e7aa6602301.json create mode 100644 change/@fluentui-react-native-radio-group-ca3ef8ce-2999-4565-a56e-354d9ec87d85.json create mode 100644 change/@fluentui-react-native-separator-b8a0742d-fee1-401f-81fb-af7f3e3b976c.json create mode 100644 change/@fluentui-react-native-spinner-b3d546f4-b5b6-40fd-a79b-5ed2b9b6a33b.json create mode 100644 change/@fluentui-react-native-stack-ef881a5d-ec44-4249-90ea-73f9a255950c.json create mode 100644 change/@fluentui-react-native-styling-utils-4531c34a-f85f-4e52-b4ed-0dc9bd580237.json create mode 100644 change/@fluentui-react-native-switch-6aa2a3dc-35b9-4da9-b523-f2deab5ef363.json create mode 100644 change/@fluentui-react-native-tablist-f53e2b12-b199-4cc2-ab0c-8027dba4454c.json create mode 100644 change/@fluentui-react-native-tester-core-b1206513-c588-4720-8e75-e41461ea7a6e.json create mode 100644 change/@fluentui-react-native-text-6e73f274-be18-4d36-b6f7-fca60e8b0e78.json create mode 100644 change/@fluentui-react-native-theme-09de394c-8195-486d-abb2-7607a13c9d13.json create mode 100644 change/@fluentui-react-native-theme-tokens-a36dab8b-fb48-474e-a0a9-2c1d4b6124ef.json create mode 100644 change/@fluentui-react-native-theme-types-564ecaef-3250-44e2-ba4e-e6b76875d7ab.json create mode 100644 change/@fluentui-react-native-themed-stylesheet-94120b57-4ff6-43f3-96db-07bcda8edf9e.json create mode 100644 change/@fluentui-react-native-theming-utils-390be6bd-ac07-42a1-bd33-493799d3e303.json create mode 100644 change/@fluentui-react-native-tokens-b959f267-ece4-4a4b-844e-742f97079040.json create mode 100644 change/@fluentui-react-native-tooltip-1bec4cf9-b1a7-4b51-ba7a-73324340126c.json create mode 100644 change/@fluentui-react-native-use-slot-62047d78-07b5-402a-8849-b9561f33da1e.json create mode 100644 change/@fluentui-react-native-use-slots-14c8e10e-e207-4206-85ea-51d2d9585bdd.json create mode 100644 change/@fluentui-react-native-use-styling-c60bd406-7f76-4356-b8e7-02f74155ec39.json create mode 100644 change/@fluentui-react-native-use-tokens-ac731fa6-04a0-45e3-a9d7-8294cd2196f8.json create mode 100644 change/@fluentui-react-native-vibrancy-view-b48a1831-583d-4894-9d8a-3c0922476392.json create mode 100644 change/@fluentui-react-native-win32-theme-9aa419f3-18d5-47ae-b57f-8fb002b5134b.json create mode 100644 change/@uifabricshared-foundation-composable-bc59802b-fa31-4a7f-bde7-c5975625217d.json create mode 100644 change/@uifabricshared-foundation-compose-282238a8-d430-49e2-a5a9-7f9217c7ae2a.json create mode 100644 change/@uifabricshared-foundation-settings-f15b3963-36da-4b25-a934-6e66d3602f15.json create mode 100644 change/@uifabricshared-foundation-tokens-a5a8e753-4660-4ed7-a9c1-b9d079fbe5b7.json create mode 100644 change/@uifabricshared-theme-registry-5b82b8ca-a04a-413e-9a6e-aab251d21df3.json create mode 100644 change/@uifabricshared-themed-settings-e0ae5714-963b-4e6f-b1a9-c5747c7d6ceb.json create mode 100644 change/@uifabricshared-theming-ramp-5339e29c-0dd6-45dd-ba4a-eac74d6752fd.json create mode 100644 change/@uifabricshared-theming-react-native-31c2caec-acc2-44b6-a2ca-c04f7fcd0dc9.json diff --git a/change/@fluentui-react-native-158d9570-486d-4514-8aaa-b486039b0288.json b/change/@fluentui-react-native-158d9570-486d-4514-8aaa-b486039b0288.json new file mode 100644 index 0000000000..9a22087e99 --- /dev/null +++ b/change/@fluentui-react-native-158d9570-486d-4514-8aaa-b486039b0288.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui/react-native", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-adapters-7680741e-f8da-4e5b-951f-d3abdef2e5f8.json b/change/@fluentui-react-native-adapters-7680741e-f8da-4e5b-951f-d3abdef2e5f8.json new file mode 100644 index 0000000000..334bc70d17 --- /dev/null +++ b/change/@fluentui-react-native-adapters-7680741e-f8da-4e5b-951f-d3abdef2e5f8.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/adapters", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-android-theme-e919d661-353b-40cd-9fb0-552742a9d2fd.json b/change/@fluentui-react-native-android-theme-e919d661-353b-40cd-9fb0-552742a9d2fd.json new file mode 100644 index 0000000000..a180c2debf --- /dev/null +++ b/change/@fluentui-react-native-android-theme-e919d661-353b-40cd-9fb0-552742a9d2fd.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/android-theme", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-apple-theme-5fcfc73c-22a2-4fe1-9d40-cf996b35e7d5.json b/change/@fluentui-react-native-apple-theme-5fcfc73c-22a2-4fe1-9d40-cf996b35e7d5.json new file mode 100644 index 0000000000..ca9a51cdea --- /dev/null +++ b/change/@fluentui-react-native-apple-theme-5fcfc73c-22a2-4fe1-9d40-cf996b35e7d5.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/apple-theme", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-avatar-aef6dd7a-c5f1-407d-9b4f-41f84be772b0.json b/change/@fluentui-react-native-avatar-aef6dd7a-c5f1-407d-9b4f-41f84be772b0.json new file mode 100644 index 0000000000..7c88adbf6a --- /dev/null +++ b/change/@fluentui-react-native-avatar-aef6dd7a-c5f1-407d-9b4f-41f84be772b0.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/avatar", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-badge-3aae3842-6f98-4039-94c0-cbe9a548a10d.json b/change/@fluentui-react-native-badge-3aae3842-6f98-4039-94c0-cbe9a548a10d.json new file mode 100644 index 0000000000..9b2c5069c5 --- /dev/null +++ b/change/@fluentui-react-native-badge-3aae3842-6f98-4039-94c0-cbe9a548a10d.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/badge", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-button-bbe1149d-921f-458d-8ccb-9c4fd0b1a35c.json b/change/@fluentui-react-native-button-bbe1149d-921f-458d-8ccb-9c4fd0b1a35c.json new file mode 100644 index 0000000000..40c6dea368 --- /dev/null +++ b/change/@fluentui-react-native-button-bbe1149d-921f-458d-8ccb-9c4fd0b1a35c.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/button", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-callout-7d0cd233-6c10-4ff7-8bd5-2674e52f0b4f.json b/change/@fluentui-react-native-callout-7d0cd233-6c10-4ff7-8bd5-2674e52f0b4f.json new file mode 100644 index 0000000000..56b7a8200c --- /dev/null +++ b/change/@fluentui-react-native-callout-7d0cd233-6c10-4ff7-8bd5-2674e52f0b4f.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/callout", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-checkbox-bd49a910-ab38-4fb3-9a67-3a7c116c4fcc.json b/change/@fluentui-react-native-checkbox-bd49a910-ab38-4fb3-9a67-3a7c116c4fcc.json new file mode 100644 index 0000000000..63ec73e8dd --- /dev/null +++ b/change/@fluentui-react-native-checkbox-bd49a910-ab38-4fb3-9a67-3a7c116c4fcc.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/checkbox", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-chip-b7453eaf-7323-401f-9719-b178e955a3fb.json b/change/@fluentui-react-native-chip-b7453eaf-7323-401f-9719-b178e955a3fb.json new file mode 100644 index 0000000000..51183ac545 --- /dev/null +++ b/change/@fluentui-react-native-chip-b7453eaf-7323-401f-9719-b178e955a3fb.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/chip", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-composition-a4724b89-133f-40ad-a5af-6ab2b2212a75.json b/change/@fluentui-react-native-composition-a4724b89-133f-40ad-a5af-6ab2b2212a75.json new file mode 100644 index 0000000000..3fcc03bf33 --- /dev/null +++ b/change/@fluentui-react-native-composition-a4724b89-133f-40ad-a5af-6ab2b2212a75.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/composition", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-contextual-menu-bba24827-af2a-41ef-8ff8-693b742618ca.json b/change/@fluentui-react-native-contextual-menu-bba24827-af2a-41ef-8ff8-693b742618ca.json new file mode 100644 index 0000000000..98c1e8ed11 --- /dev/null +++ b/change/@fluentui-react-native-contextual-menu-bba24827-af2a-41ef-8ff8-693b742618ca.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/contextual-menu", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-default-theme-9b3ba552-2005-4562-944f-b90c47f5f513.json b/change/@fluentui-react-native-default-theme-9b3ba552-2005-4562-944f-b90c47f5f513.json new file mode 100644 index 0000000000..e5407092d1 --- /dev/null +++ b/change/@fluentui-react-native-default-theme-9b3ba552-2005-4562-944f-b90c47f5f513.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/default-theme", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-divider-3b1c3f37-74b1-48ec-bf4d-d0cbddd59968.json b/change/@fluentui-react-native-divider-3b1c3f37-74b1-48ec-bf4d-d0cbddd59968.json new file mode 100644 index 0000000000..4cc420ff17 --- /dev/null +++ b/change/@fluentui-react-native-divider-3b1c3f37-74b1-48ec-bf4d-d0cbddd59968.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/divider", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-drawer-c3c2e365-3ef7-4935-be32-88d8cb8caad8.json b/change/@fluentui-react-native-drawer-c3c2e365-3ef7-4935-be32-88d8cb8caad8.json new file mode 100644 index 0000000000..568fdb1650 --- /dev/null +++ b/change/@fluentui-react-native-drawer-c3c2e365-3ef7-4935-be32-88d8cb8caad8.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/drawer", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-dropdown-6917fda7-d56f-4252-9d86-ad299be901bb.json b/change/@fluentui-react-native-dropdown-6917fda7-d56f-4252-9d86-ad299be901bb.json new file mode 100644 index 0000000000..33e31e55d4 --- /dev/null +++ b/change/@fluentui-react-native-dropdown-6917fda7-d56f-4252-9d86-ad299be901bb.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/dropdown", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-e2e-testing-d3bd364b-6012-4c56-80cc-4663beb62cbb.json b/change/@fluentui-react-native-e2e-testing-d3bd364b-6012-4c56-80cc-4663beb62cbb.json new file mode 100644 index 0000000000..1226227a27 --- /dev/null +++ b/change/@fluentui-react-native-e2e-testing-d3bd364b-6012-4c56-80cc-4663beb62cbb.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/e2e-testing", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-experimental-activity-indicator-6cea51ea-d5be-499a-822a-2088b3c6ea91.json b/change/@fluentui-react-native-experimental-activity-indicator-6cea51ea-d5be-499a-822a-2088b3c6ea91.json new file mode 100644 index 0000000000..bbf7f00764 --- /dev/null +++ b/change/@fluentui-react-native-experimental-activity-indicator-6cea51ea-d5be-499a-822a-2088b3c6ea91.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/experimental-activity-indicator", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-experimental-appearance-additions-8cdb444a-3f6e-4ea7-b426-c6e7192ad9e1.json b/change/@fluentui-react-native-experimental-appearance-additions-8cdb444a-3f6e-4ea7-b426-c6e7192ad9e1.json new file mode 100644 index 0000000000..bffcca167d --- /dev/null +++ b/change/@fluentui-react-native-experimental-appearance-additions-8cdb444a-3f6e-4ea7-b426-c6e7192ad9e1.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/experimental-appearance-additions", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-experimental-avatar-a3e532ab-6919-41d1-bab8-2018d01c239d.json b/change/@fluentui-react-native-experimental-avatar-a3e532ab-6919-41d1-bab8-2018d01c239d.json new file mode 100644 index 0000000000..606e49214d --- /dev/null +++ b/change/@fluentui-react-native-experimental-avatar-a3e532ab-6919-41d1-bab8-2018d01c239d.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/experimental-avatar", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-experimental-checkbox-6a6a0114-4893-46fa-94f6-e82196e9349a.json b/change/@fluentui-react-native-experimental-checkbox-6a6a0114-4893-46fa-94f6-e82196e9349a.json new file mode 100644 index 0000000000..6fa80c715f --- /dev/null +++ b/change/@fluentui-react-native-experimental-checkbox-6a6a0114-4893-46fa-94f6-e82196e9349a.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/experimental-checkbox", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-experimental-expander-6848a05b-2863-45a5-bcbb-719d4615372e.json b/change/@fluentui-react-native-experimental-expander-6848a05b-2863-45a5-bcbb-719d4615372e.json new file mode 100644 index 0000000000..e4b2ed5688 --- /dev/null +++ b/change/@fluentui-react-native-experimental-expander-6848a05b-2863-45a5-bcbb-719d4615372e.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/experimental-expander", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-experimental-menu-button-803056b0-5b5a-4cdf-a30e-2f24748b84e7.json b/change/@fluentui-react-native-experimental-menu-button-803056b0-5b5a-4cdf-a30e-2f24748b84e7.json new file mode 100644 index 0000000000..90dfa04663 --- /dev/null +++ b/change/@fluentui-react-native-experimental-menu-button-803056b0-5b5a-4cdf-a30e-2f24748b84e7.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/experimental-menu-button", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-experimental-native-date-picker-905caf15-09f5-4707-bcc9-ba2d8d3fe6c8.json b/change/@fluentui-react-native-experimental-native-date-picker-905caf15-09f5-4707-bcc9-ba2d8d3fe6c8.json new file mode 100644 index 0000000000..c768c083f6 --- /dev/null +++ b/change/@fluentui-react-native-experimental-native-date-picker-905caf15-09f5-4707-bcc9-ba2d8d3fe6c8.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/experimental-native-date-picker", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-experimental-native-font-metrics-f86468f7-4e09-48f6-a3fa-2d456d97b45e.json b/change/@fluentui-react-native-experimental-native-font-metrics-f86468f7-4e09-48f6-a3fa-2d456d97b45e.json new file mode 100644 index 0000000000..1cc265df27 --- /dev/null +++ b/change/@fluentui-react-native-experimental-native-font-metrics-f86468f7-4e09-48f6-a3fa-2d456d97b45e.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/experimental-native-font-metrics", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-experimental-shadow-563f2fb0-41bb-4cc6-9670-f4546fbd2a0a.json b/change/@fluentui-react-native-experimental-shadow-563f2fb0-41bb-4cc6-9670-f4546fbd2a0a.json new file mode 100644 index 0000000000..4effb23685 --- /dev/null +++ b/change/@fluentui-react-native-experimental-shadow-563f2fb0-41bb-4cc6-9670-f4546fbd2a0a.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/experimental-shadow", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-experimental-shimmer-a394d9a9-4df7-47a6-aed6-42db032ee618.json b/change/@fluentui-react-native-experimental-shimmer-a394d9a9-4df7-47a6-aed6-42db032ee618.json new file mode 100644 index 0000000000..02614943c0 --- /dev/null +++ b/change/@fluentui-react-native-experimental-shimmer-a394d9a9-4df7-47a6-aed6-42db032ee618.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/experimental-shimmer", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-focus-trap-zone-0b0cf3f0-9175-4f83-9994-3d28b06b6dba.json b/change/@fluentui-react-native-focus-trap-zone-0b0cf3f0-9175-4f83-9994-3d28b06b6dba.json new file mode 100644 index 0000000000..210d6e12cf --- /dev/null +++ b/change/@fluentui-react-native-focus-trap-zone-0b0cf3f0-9175-4f83-9994-3d28b06b6dba.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/focus-trap-zone", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-focus-zone-15788ba1-4227-4770-9b56-a9dce398f6bd.json b/change/@fluentui-react-native-focus-zone-15788ba1-4227-4770-9b56-a9dce398f6bd.json new file mode 100644 index 0000000000..b309cd16cd --- /dev/null +++ b/change/@fluentui-react-native-focus-zone-15788ba1-4227-4770-9b56-a9dce398f6bd.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/focus-zone", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-framework-b7e798cd-5f38-404e-9f72-e489aa35df8f.json b/change/@fluentui-react-native-framework-b7e798cd-5f38-404e-9f72-e489aa35df8f.json new file mode 100644 index 0000000000..b32dd59cf3 --- /dev/null +++ b/change/@fluentui-react-native-framework-b7e798cd-5f38-404e-9f72-e489aa35df8f.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/framework", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-framework-base-be7e5bfd-560e-440b-8173-8410b7241023.json b/change/@fluentui-react-native-framework-base-be7e5bfd-560e-440b-8173-8410b7241023.json new file mode 100644 index 0000000000..b0614dea0b --- /dev/null +++ b/change/@fluentui-react-native-framework-base-be7e5bfd-560e-440b-8173-8410b7241023.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/framework-base", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-icon-72b02aa5-0f5f-4c64-87c2-9acff295e9e3.json b/change/@fluentui-react-native-icon-72b02aa5-0f5f-4c64-87c2-9acff295e9e3.json new file mode 100644 index 0000000000..ea3a06d890 --- /dev/null +++ b/change/@fluentui-react-native-icon-72b02aa5-0f5f-4c64-87c2-9acff295e9e3.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/icon", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-immutable-merge-5bae8eb3-9fd7-4ba4-b974-7d8422d66495.json b/change/@fluentui-react-native-immutable-merge-5bae8eb3-9fd7-4ba4-b974-7d8422d66495.json new file mode 100644 index 0000000000..6e67591d3b --- /dev/null +++ b/change/@fluentui-react-native-immutable-merge-5bae8eb3-9fd7-4ba4-b974-7d8422d66495.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/immutable-merge", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-input-31c128c7-273b-4cd4-8eff-cec6d620af17.json b/change/@fluentui-react-native-input-31c128c7-273b-4cd4-8eff-cec6d620af17.json new file mode 100644 index 0000000000..a2a1068f2b --- /dev/null +++ b/change/@fluentui-react-native-input-31c128c7-273b-4cd4-8eff-cec6d620af17.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/input", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-interactive-hooks-2b1cb3c4-620a-43d5-8579-17f99c00fd39.json b/change/@fluentui-react-native-interactive-hooks-2b1cb3c4-620a-43d5-8579-17f99c00fd39.json new file mode 100644 index 0000000000..58740a95ae --- /dev/null +++ b/change/@fluentui-react-native-interactive-hooks-2b1cb3c4-620a-43d5-8579-17f99c00fd39.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/interactive-hooks", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-link-85b28ac0-4de6-423a-9ff3-261a4b97cfde.json b/change/@fluentui-react-native-link-85b28ac0-4de6-423a-9ff3-261a4b97cfde.json new file mode 100644 index 0000000000..3865877657 --- /dev/null +++ b/change/@fluentui-react-native-link-85b28ac0-4de6-423a-9ff3-261a4b97cfde.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/link", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-memo-cache-df68ad81-7e45-4103-81e7-c092390b8a20.json b/change/@fluentui-react-native-memo-cache-df68ad81-7e45-4103-81e7-c092390b8a20.json new file mode 100644 index 0000000000..8a8f0ae0bb --- /dev/null +++ b/change/@fluentui-react-native-memo-cache-df68ad81-7e45-4103-81e7-c092390b8a20.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/memo-cache", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-menu-28842fed-2751-4688-a1fd-09de38982258.json b/change/@fluentui-react-native-menu-28842fed-2751-4688-a1fd-09de38982258.json new file mode 100644 index 0000000000..8bf66a21aa --- /dev/null +++ b/change/@fluentui-react-native-menu-28842fed-2751-4688-a1fd-09de38982258.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/menu", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-menu-button-dcc65aa2-7d02-4555-ab15-fe1a191b6f66.json b/change/@fluentui-react-native-menu-button-dcc65aa2-7d02-4555-ab15-fe1a191b6f66.json new file mode 100644 index 0000000000..c8c8106c2c --- /dev/null +++ b/change/@fluentui-react-native-menu-button-dcc65aa2-7d02-4555-ab15-fe1a191b6f66.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/menu-button", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-merge-props-8fa82508-8265-4038-8b3f-e03478b9e9e2.json b/change/@fluentui-react-native-merge-props-8fa82508-8265-4038-8b3f-e03478b9e9e2.json new file mode 100644 index 0000000000..1ef31a1532 --- /dev/null +++ b/change/@fluentui-react-native-merge-props-8fa82508-8265-4038-8b3f-e03478b9e9e2.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/merge-props", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-notification-f414c2cc-4a22-48d1-bc45-9bd19136ddf9.json b/change/@fluentui-react-native-notification-f414c2cc-4a22-48d1-bc45-9bd19136ddf9.json new file mode 100644 index 0000000000..0399fb6ba6 --- /dev/null +++ b/change/@fluentui-react-native-notification-f414c2cc-4a22-48d1-bc45-9bd19136ddf9.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/notification", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-overflow-1c28e08b-4a07-46dd-a3be-68392c56902b.json b/change/@fluentui-react-native-overflow-1c28e08b-4a07-46dd-a3be-68392c56902b.json new file mode 100644 index 0000000000..7230810aae --- /dev/null +++ b/change/@fluentui-react-native-overflow-1c28e08b-4a07-46dd-a3be-68392c56902b.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/overflow", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-persona-144a71bf-b20b-4ffe-bf07-43a434a6aca5.json b/change/@fluentui-react-native-persona-144a71bf-b20b-4ffe-bf07-43a434a6aca5.json new file mode 100644 index 0000000000..02b17c6c3b --- /dev/null +++ b/change/@fluentui-react-native-persona-144a71bf-b20b-4ffe-bf07-43a434a6aca5.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/persona", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-persona-coin-5cdbea93-38f2-4706-98be-8f08508efc03.json b/change/@fluentui-react-native-persona-coin-5cdbea93-38f2-4706-98be-8f08508efc03.json new file mode 100644 index 0000000000..81660462d4 --- /dev/null +++ b/change/@fluentui-react-native-persona-coin-5cdbea93-38f2-4706-98be-8f08508efc03.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/persona-coin", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-popover-defd02de-be09-4246-a97c-c968740a62b0.json b/change/@fluentui-react-native-popover-defd02de-be09-4246-a97c-c968740a62b0.json new file mode 100644 index 0000000000..cd3365c2e7 --- /dev/null +++ b/change/@fluentui-react-native-popover-defd02de-be09-4246-a97c-c968740a62b0.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/popover", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-pressable-bb7ffd6e-0d09-4f41-b85e-2e7aa6602301.json b/change/@fluentui-react-native-pressable-bb7ffd6e-0d09-4f41-b85e-2e7aa6602301.json new file mode 100644 index 0000000000..cc1e4f527c --- /dev/null +++ b/change/@fluentui-react-native-pressable-bb7ffd6e-0d09-4f41-b85e-2e7aa6602301.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/pressable", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-radio-group-ca3ef8ce-2999-4565-a56e-354d9ec87d85.json b/change/@fluentui-react-native-radio-group-ca3ef8ce-2999-4565-a56e-354d9ec87d85.json new file mode 100644 index 0000000000..9d84111db5 --- /dev/null +++ b/change/@fluentui-react-native-radio-group-ca3ef8ce-2999-4565-a56e-354d9ec87d85.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/radio-group", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-separator-b8a0742d-fee1-401f-81fb-af7f3e3b976c.json b/change/@fluentui-react-native-separator-b8a0742d-fee1-401f-81fb-af7f3e3b976c.json new file mode 100644 index 0000000000..bf1a265741 --- /dev/null +++ b/change/@fluentui-react-native-separator-b8a0742d-fee1-401f-81fb-af7f3e3b976c.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/separator", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-spinner-b3d546f4-b5b6-40fd-a79b-5ed2b9b6a33b.json b/change/@fluentui-react-native-spinner-b3d546f4-b5b6-40fd-a79b-5ed2b9b6a33b.json new file mode 100644 index 0000000000..98f2144903 --- /dev/null +++ b/change/@fluentui-react-native-spinner-b3d546f4-b5b6-40fd-a79b-5ed2b9b6a33b.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/spinner", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-stack-ef881a5d-ec44-4249-90ea-73f9a255950c.json b/change/@fluentui-react-native-stack-ef881a5d-ec44-4249-90ea-73f9a255950c.json new file mode 100644 index 0000000000..b7449a1544 --- /dev/null +++ b/change/@fluentui-react-native-stack-ef881a5d-ec44-4249-90ea-73f9a255950c.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/stack", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-styling-utils-4531c34a-f85f-4e52-b4ed-0dc9bd580237.json b/change/@fluentui-react-native-styling-utils-4531c34a-f85f-4e52-b4ed-0dc9bd580237.json new file mode 100644 index 0000000000..f49227db9d --- /dev/null +++ b/change/@fluentui-react-native-styling-utils-4531c34a-f85f-4e52-b4ed-0dc9bd580237.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/styling-utils", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-switch-6aa2a3dc-35b9-4da9-b523-f2deab5ef363.json b/change/@fluentui-react-native-switch-6aa2a3dc-35b9-4da9-b523-f2deab5ef363.json new file mode 100644 index 0000000000..0ee45e2921 --- /dev/null +++ b/change/@fluentui-react-native-switch-6aa2a3dc-35b9-4da9-b523-f2deab5ef363.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/switch", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-tablist-f53e2b12-b199-4cc2-ab0c-8027dba4454c.json b/change/@fluentui-react-native-tablist-f53e2b12-b199-4cc2-ab0c-8027dba4454c.json new file mode 100644 index 0000000000..7e46bb0293 --- /dev/null +++ b/change/@fluentui-react-native-tablist-f53e2b12-b199-4cc2-ab0c-8027dba4454c.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/tablist", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-tester-core-b1206513-c588-4720-8e75-e41461ea7a6e.json b/change/@fluentui-react-native-tester-core-b1206513-c588-4720-8e75-e41461ea7a6e.json new file mode 100644 index 0000000000..f7d990f0ee --- /dev/null +++ b/change/@fluentui-react-native-tester-core-b1206513-c588-4720-8e75-e41461ea7a6e.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/tester-core", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-text-6e73f274-be18-4d36-b6f7-fca60e8b0e78.json b/change/@fluentui-react-native-text-6e73f274-be18-4d36-b6f7-fca60e8b0e78.json new file mode 100644 index 0000000000..4c67a6e5f9 --- /dev/null +++ b/change/@fluentui-react-native-text-6e73f274-be18-4d36-b6f7-fca60e8b0e78.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/text", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-theme-09de394c-8195-486d-abb2-7607a13c9d13.json b/change/@fluentui-react-native-theme-09de394c-8195-486d-abb2-7607a13c9d13.json new file mode 100644 index 0000000000..aaa81229c6 --- /dev/null +++ b/change/@fluentui-react-native-theme-09de394c-8195-486d-abb2-7607a13c9d13.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/theme", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-theme-tokens-a36dab8b-fb48-474e-a0a9-2c1d4b6124ef.json b/change/@fluentui-react-native-theme-tokens-a36dab8b-fb48-474e-a0a9-2c1d4b6124ef.json new file mode 100644 index 0000000000..0e9db9ba40 --- /dev/null +++ b/change/@fluentui-react-native-theme-tokens-a36dab8b-fb48-474e-a0a9-2c1d4b6124ef.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/theme-tokens", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-theme-types-564ecaef-3250-44e2-ba4e-e6b76875d7ab.json b/change/@fluentui-react-native-theme-types-564ecaef-3250-44e2-ba4e-e6b76875d7ab.json new file mode 100644 index 0000000000..9aac48ff76 --- /dev/null +++ b/change/@fluentui-react-native-theme-types-564ecaef-3250-44e2-ba4e-e6b76875d7ab.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/theme-types", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-themed-stylesheet-94120b57-4ff6-43f3-96db-07bcda8edf9e.json b/change/@fluentui-react-native-themed-stylesheet-94120b57-4ff6-43f3-96db-07bcda8edf9e.json new file mode 100644 index 0000000000..511576aa4f --- /dev/null +++ b/change/@fluentui-react-native-themed-stylesheet-94120b57-4ff6-43f3-96db-07bcda8edf9e.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/themed-stylesheet", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-theming-utils-390be6bd-ac07-42a1-bd33-493799d3e303.json b/change/@fluentui-react-native-theming-utils-390be6bd-ac07-42a1-bd33-493799d3e303.json new file mode 100644 index 0000000000..b57a128650 --- /dev/null +++ b/change/@fluentui-react-native-theming-utils-390be6bd-ac07-42a1-bd33-493799d3e303.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/theming-utils", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-tokens-b959f267-ece4-4a4b-844e-742f97079040.json b/change/@fluentui-react-native-tokens-b959f267-ece4-4a4b-844e-742f97079040.json new file mode 100644 index 0000000000..d765c4aca7 --- /dev/null +++ b/change/@fluentui-react-native-tokens-b959f267-ece4-4a4b-844e-742f97079040.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/tokens", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-tooltip-1bec4cf9-b1a7-4b51-ba7a-73324340126c.json b/change/@fluentui-react-native-tooltip-1bec4cf9-b1a7-4b51-ba7a-73324340126c.json new file mode 100644 index 0000000000..7277983628 --- /dev/null +++ b/change/@fluentui-react-native-tooltip-1bec4cf9-b1a7-4b51-ba7a-73324340126c.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/tooltip", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-use-slot-62047d78-07b5-402a-8849-b9561f33da1e.json b/change/@fluentui-react-native-use-slot-62047d78-07b5-402a-8849-b9561f33da1e.json new file mode 100644 index 0000000000..c656a3d3c9 --- /dev/null +++ b/change/@fluentui-react-native-use-slot-62047d78-07b5-402a-8849-b9561f33da1e.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/use-slot", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-use-slots-14c8e10e-e207-4206-85ea-51d2d9585bdd.json b/change/@fluentui-react-native-use-slots-14c8e10e-e207-4206-85ea-51d2d9585bdd.json new file mode 100644 index 0000000000..6f3e6431f2 --- /dev/null +++ b/change/@fluentui-react-native-use-slots-14c8e10e-e207-4206-85ea-51d2d9585bdd.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/use-slots", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-use-styling-c60bd406-7f76-4356-b8e7-02f74155ec39.json b/change/@fluentui-react-native-use-styling-c60bd406-7f76-4356-b8e7-02f74155ec39.json new file mode 100644 index 0000000000..44c328e908 --- /dev/null +++ b/change/@fluentui-react-native-use-styling-c60bd406-7f76-4356-b8e7-02f74155ec39.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/use-styling", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-use-tokens-ac731fa6-04a0-45e3-a9d7-8294cd2196f8.json b/change/@fluentui-react-native-use-tokens-ac731fa6-04a0-45e3-a9d7-8294cd2196f8.json new file mode 100644 index 0000000000..757ba945b9 --- /dev/null +++ b/change/@fluentui-react-native-use-tokens-ac731fa6-04a0-45e3-a9d7-8294cd2196f8.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/use-tokens", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-vibrancy-view-b48a1831-583d-4894-9d8a-3c0922476392.json b/change/@fluentui-react-native-vibrancy-view-b48a1831-583d-4894-9d8a-3c0922476392.json new file mode 100644 index 0000000000..92871af340 --- /dev/null +++ b/change/@fluentui-react-native-vibrancy-view-b48a1831-583d-4894-9d8a-3c0922476392.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/vibrancy-view", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@fluentui-react-native-win32-theme-9aa419f3-18d5-47ae-b57f-8fb002b5134b.json b/change/@fluentui-react-native-win32-theme-9aa419f3-18d5-47ae-b57f-8fb002b5134b.json new file mode 100644 index 0000000000..47135003f1 --- /dev/null +++ b/change/@fluentui-react-native-win32-theme-9aa419f3-18d5-47ae-b57f-8fb002b5134b.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@fluentui-react-native/win32-theme", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@uifabricshared-foundation-composable-bc59802b-fa31-4a7f-bde7-c5975625217d.json b/change/@uifabricshared-foundation-composable-bc59802b-fa31-4a7f-bde7-c5975625217d.json new file mode 100644 index 0000000000..bacc4a1b42 --- /dev/null +++ b/change/@uifabricshared-foundation-composable-bc59802b-fa31-4a7f-bde7-c5975625217d.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@uifabricshared/foundation-composable", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@uifabricshared-foundation-compose-282238a8-d430-49e2-a5a9-7f9217c7ae2a.json b/change/@uifabricshared-foundation-compose-282238a8-d430-49e2-a5a9-7f9217c7ae2a.json new file mode 100644 index 0000000000..6953dbc946 --- /dev/null +++ b/change/@uifabricshared-foundation-compose-282238a8-d430-49e2-a5a9-7f9217c7ae2a.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@uifabricshared/foundation-compose", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@uifabricshared-foundation-settings-f15b3963-36da-4b25-a934-6e66d3602f15.json b/change/@uifabricshared-foundation-settings-f15b3963-36da-4b25-a934-6e66d3602f15.json new file mode 100644 index 0000000000..366a32436d --- /dev/null +++ b/change/@uifabricshared-foundation-settings-f15b3963-36da-4b25-a934-6e66d3602f15.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@uifabricshared/foundation-settings", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@uifabricshared-foundation-tokens-a5a8e753-4660-4ed7-a9c1-b9d079fbe5b7.json b/change/@uifabricshared-foundation-tokens-a5a8e753-4660-4ed7-a9c1-b9d079fbe5b7.json new file mode 100644 index 0000000000..8ada110778 --- /dev/null +++ b/change/@uifabricshared-foundation-tokens-a5a8e753-4660-4ed7-a9c1-b9d079fbe5b7.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@uifabricshared/foundation-tokens", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@uifabricshared-theme-registry-5b82b8ca-a04a-413e-9a6e-aab251d21df3.json b/change/@uifabricshared-theme-registry-5b82b8ca-a04a-413e-9a6e-aab251d21df3.json new file mode 100644 index 0000000000..113789664d --- /dev/null +++ b/change/@uifabricshared-theme-registry-5b82b8ca-a04a-413e-9a6e-aab251d21df3.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@uifabricshared/theme-registry", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@uifabricshared-themed-settings-e0ae5714-963b-4e6f-b1a9-c5747c7d6ceb.json b/change/@uifabricshared-themed-settings-e0ae5714-963b-4e6f-b1a9-c5747c7d6ceb.json new file mode 100644 index 0000000000..2c67c5e6ab --- /dev/null +++ b/change/@uifabricshared-themed-settings-e0ae5714-963b-4e6f-b1a9-c5747c7d6ceb.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@uifabricshared/themed-settings", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@uifabricshared-theming-ramp-5339e29c-0dd6-45dd-ba4a-eac74d6752fd.json b/change/@uifabricshared-theming-ramp-5339e29c-0dd6-45dd-ba4a-eac74d6752fd.json new file mode 100644 index 0000000000..8e7bd5b4fd --- /dev/null +++ b/change/@uifabricshared-theming-ramp-5339e29c-0dd6-45dd-ba4a-eac74d6752fd.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@uifabricshared/theming-ramp", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@uifabricshared-theming-react-native-31c2caec-acc2-44b6-a2ca-c04f7fcd0dc9.json b/change/@uifabricshared-theming-react-native-31c2caec-acc2-44b6-a2ca-c04f7fcd0dc9.json new file mode 100644 index 0000000000..284481d76c --- /dev/null +++ b/change/@uifabricshared-theming-react-native-31c2caec-acc2-44b6-a2ca-c04f7fcd0dc9.json @@ -0,0 +1,7 @@ +{ + "type": "minor", + "comment": "upgrade to RN 81, React 19, and fix builds", + "packageName": "@uifabricshared/theming-react-native", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} From 23d41e0fa99b72c28e9b9dc060eb3f4ff976fb77 Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Tue, 3 Feb 2026 18:54:27 -0800 Subject: [PATCH 26/29] prettier fixes and pod install updates --- apps/fluent-tester/ios/Podfile.lock | 4 ++-- apps/fluent-tester/macos/Podfile.lock | 4 ++-- packages/components/Menu/src/__tests__/Menu.test.tsx | 2 +- .../Menu/src/__tests__/__snapshots__/Menu.test.tsx.snap | 2 +- packages/experimental/Shimmer/src/Shimmer.test.tsx | 1 - 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/apps/fluent-tester/ios/Podfile.lock b/apps/fluent-tester/ios/Podfile.lock index bc4f16f296..2fd8303bfb 100644 --- a/apps/fluent-tester/ios/Podfile.lock +++ b/apps/fluent-tester/ios/Podfile.lock @@ -1290,7 +1290,7 @@ PODS: - React-logger (= 0.74.7) - React-perflogger (= 0.74.7) - React-utils (= 0.74.7) - - ReactNativeHost (0.5.15): + - ReactNativeHost (0.5.16): - DoubleConversion - glog - RCT-Folly (= 2024.01.01.00) @@ -1569,7 +1569,7 @@ SPEC CHECKSUMS: React-runtimescheduler: 7ae98c85d480214a491c40799501c94c7a188d73 React-utils: 269c55ca0a0a9d985fc8ab90898f7c1124784d73 ReactCommon: 345cad6a151c60c5d80bcc2005457fac2e079b82 - ReactNativeHost: 91d43cc8ebaf158a27f8ae406a7e8b43ec823faa + ReactNativeHost: 4296c5d13fdcafb9cb53f2f3b6ab5e427ab9a6dd ReactTestApp-DevSupport: 52ac76197e5accf579592aa3b9aa07fd0766f211 ReactTestApp-Resources: 41fbfc3cae89be49adf9cfa9d3a9954456c65ab1 RNSVG: d39a9be65c439dfb061955f7615f1f71a51ecede diff --git a/apps/fluent-tester/macos/Podfile.lock b/apps/fluent-tester/macos/Podfile.lock index 3458cc297a..7c7dba5db4 100644 --- a/apps/fluent-tester/macos/Podfile.lock +++ b/apps/fluent-tester/macos/Podfile.lock @@ -1223,7 +1223,7 @@ PODS: - React-logger (= 0.74.30) - React-perflogger (= 0.74.30) - React-utils (= 0.74.30) - - ReactNativeHost (0.5.15): + - ReactNativeHost (0.5.16): - DoubleConversion - glog - RCT-Folly (= 2024.01.01.00) @@ -1516,7 +1516,7 @@ SPEC CHECKSUMS: React-runtimescheduler: abda2da3b75a17017ba04f034deb9cf0eef16734 React-utils: ac5abf4d2d95d579be3b63fa44b46af2ca38544b ReactCommon: 1eab570cb54edc279d28066475dbcf7e5b44c29e - ReactNativeHost: 91d43cc8ebaf158a27f8ae406a7e8b43ec823faa + ReactNativeHost: 4296c5d13fdcafb9cb53f2f3b6ab5e427ab9a6dd ReactTestApp-DevSupport: 52ac76197e5accf579592aa3b9aa07fd0766f211 ReactTestApp-Resources: 3c8739a3e3ed26f67f8ab68f13102fb9591301c8 RNSVG: d39a9be65c439dfb061955f7615f1f71a51ecede diff --git a/packages/components/Menu/src/__tests__/Menu.test.tsx b/packages/components/Menu/src/__tests__/Menu.test.tsx index 663f5d25f9..feb9412d78 100644 --- a/packages/components/Menu/src/__tests__/Menu.test.tsx +++ b/packages/components/Menu/src/__tests__/Menu.test.tsx @@ -74,7 +74,7 @@ describe('Menu component tests', () => { expect(tree).toMatchSnapshot(); }); - it('Menu defaultOpen', () => { + it('Menu defaultOpen with disabled', () => { let component: renderer.ReactTestRenderer; act(() => { component = renderer.create( diff --git a/packages/components/Menu/src/__tests__/__snapshots__/Menu.test.tsx.snap b/packages/components/Menu/src/__tests__/__snapshots__/Menu.test.tsx.snap index 93a2bda470..3bed547f1e 100644 --- a/packages/components/Menu/src/__tests__/__snapshots__/Menu.test.tsx.snap +++ b/packages/components/Menu/src/__tests__/__snapshots__/Menu.test.tsx.snap @@ -320,7 +320,7 @@ exports[`Menu component tests Menu defaultOpen 1`] = `
`; -exports[`Menu component tests Menu defaultOpen 2`] = ` +exports[`Menu component tests Menu defaultOpen with disabled 1`] = ` { - it('Shimmer default', async () => { let component: renderer.ReactTestRenderer; act(() => { From d6f04a5dd95aa1c33c74513b8a586f7f28cc7da8 Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Tue, 3 Feb 2026 21:00:43 -0800 Subject: [PATCH 27/29] Change files --- ...native-tester-cf48e2bb-d786-462a-ab08-2a9d198548a8.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 change/@fluentui-react-native-tester-cf48e2bb-d786-462a-ab08-2a9d198548a8.json diff --git a/change/@fluentui-react-native-tester-cf48e2bb-d786-462a-ab08-2a9d198548a8.json b/change/@fluentui-react-native-tester-cf48e2bb-d786-462a-ab08-2a9d198548a8.json new file mode 100644 index 0000000000..a33cfef28e --- /dev/null +++ b/change/@fluentui-react-native-tester-cf48e2bb-d786-462a-ab08-2a9d198548a8.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "fix tests for react 19", + "packageName": "@fluentui-react-native/tester", + "email": "jasonmo@microsoft.com", + "dependentChangeType": "patch" +} From fd76ad6edc9cd16b8dafff4c15bdf13584539884 Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Wed, 4 Feb 2026 09:58:05 -0800 Subject: [PATCH 28/29] fix naming mismatch on macos callout native component --- .../components/Callout/src/CalloutNativeComponent.macos.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/components/Callout/src/CalloutNativeComponent.macos.ts b/packages/components/Callout/src/CalloutNativeComponent.macos.ts index 7ccf9123ef..b6563d4490 100644 --- a/packages/components/Callout/src/CalloutNativeComponent.macos.ts +++ b/packages/components/Callout/src/CalloutNativeComponent.macos.ts @@ -7,5 +7,6 @@ export const Commands: CalloutNativeCommands = codegenNativeCommands('RCTCallout') as CalloutComponentType; +// no fabric for macOS, just use requireNativeComponent +// macOS uses FRNCallout (registered by FRNCalloutManager), not RCTCallout +export default requireNativeComponent('FRNCallout') as CalloutComponentType; From 4bf5ee89139432abc0e56e430e4f7694b71ef31b Mon Sep 17 00:00:00 2001 From: Jason Morse Date: Wed, 4 Feb 2026 11:30:11 -0800 Subject: [PATCH 29/29] add missing snapshot updates --- .../src/deprecated/__snapshots__/Button.test.tsx.snap | 1 + .../legacy/__tests__/__snapshots__/Link.test.tsx.snap | 2 ++ .../__tests__/__snapshots__/RadioButton.test.tsx.snap | 2 ++ .../__snapshots__/RadioButtonGroup.test.tsx.snap | 10 ++++++++++ .../src/__tests__/__snapshots__/Stack.test.tsx.snap | 2 ++ 5 files changed, 17 insertions(+) diff --git a/packages/components/Button/src/deprecated/__snapshots__/Button.test.tsx.snap b/packages/components/Button/src/deprecated/__snapshots__/Button.test.tsx.snap index a5008031fd..24b1259018 100644 --- a/packages/components/Button/src/deprecated/__snapshots__/Button.test.tsx.snap +++ b/packages/components/Button/src/deprecated/__snapshots__/Button.test.tsx.snap @@ -51,6 +51,7 @@ exports[`Button default 1`] = ` } > Default Button diff --git a/packages/components/RadioGroup/src/legacy/__tests__/__snapshots__/RadioButtonGroup.test.tsx.snap b/packages/components/RadioGroup/src/legacy/__tests__/__snapshots__/RadioButtonGroup.test.tsx.snap index 21112a731d..a8d25dc5ec 100644 --- a/packages/components/RadioGroup/src/legacy/__tests__/__snapshots__/RadioButtonGroup.test.tsx.snap +++ b/packages/components/RadioGroup/src/legacy/__tests__/__snapshots__/RadioButtonGroup.test.tsx.snap @@ -14,6 +14,7 @@ exports[`RadioButton component tests RadioButton default 1`] = ` } > RadioButton1 @@ -202,6 +205,7 @@ exports[`RadioButton component tests RadioButton default 1`] = ` /> RadioButton2 @@ -237,6 +242,7 @@ exports[`RadioButton component tests RadioButton not direct child of radio group } > RadioButton1 @@ -426,6 +434,7 @@ exports[`RadioButton component tests RadioButton not direct child of radio group /> RadioButton2 diff --git a/packages/components/Stack/src/__tests__/__snapshots__/Stack.test.tsx.snap b/packages/components/Stack/src/__tests__/__snapshots__/Stack.test.tsx.snap index c93c71bb55..e1933e787b 100644 --- a/packages/components/Stack/src/__tests__/__snapshots__/Stack.test.tsx.snap +++ b/packages/components/Stack/src/__tests__/__snapshots__/Stack.test.tsx.snap @@ -2,6 +2,8 @@ exports[`Stack with tokens 1`] = `