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 5f15e9d7b04..42a445d5a7b 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 d8473943914..4e0a84023b6 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 51b046b62f0..10085c57433 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 ee160fefe6f..c016bd5b2e4 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 6d281076305..5b18424acff 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 d9f2f06d416..097b99b3567 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 b0f655c3ec2..48774761396 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 1f7692245b3..53470446b2a 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 7aee136acde..69f1bdc461c 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 11732f552c9..7826f7a6bb4 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 d9d4cbc6ac0..d19993e2a5b 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 9ec996449dc..b1fa373dd66 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 8ce16638f9b..2188390ddf6 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 1197099c3e7..a6cbdea862d 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 ee77f8d5f73..72dbdd7587e 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 8e30aaff126..9b1a6f29fcb 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 0822798c008..601d8e678aa 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 ada535f8f83..b4e6abcfa24 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 e20acf27f20..d0355972a25 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 00000000000..a7d28a10261 --- /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 f86b39bbfe8..a84d18cd3b9 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 00000000000..35a03214da7 --- /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 492370ebe4e..00000000000 --- 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 3a2fd0510d3..c37f7fdbcb4 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 80296201392..2422eae06f5 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 00000000000..ced6cf240ab --- /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 00000000000..24879b9ebe9 --- /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 00000000000..dbb1288ad69 --- /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 00000000000..0513030fb3b --- /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 00000000000..d7a9734f41c --- /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 00000000000..cf63194b97d --- /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 00000000000..2ad7de2a796 --- /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 00000000000..98080bae984 --- /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 99b0d8986c1..b72a9c8d5c3 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 00000000000..60cdb0d3487 --- /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 a7d28a10261..84bda02243c 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 80f0848f2e3..e4a50123976 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 c37f7fdbcb4..9581c8453d1 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 00000000000..b3ee7bbe935 --- /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 f05d40778b3..2cfbe4f7d1c 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 d473437ac02..86fb0fb8017 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 00000000000..49e28bb60dd --- /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 00000000000..a581971db02 --- /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 961cfaea3ad..59ad0f67a44 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 7e0bc343764..edf7dea14ed 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 f3d1980ff3c..5e72a34b810 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 58ec13d41ae..56035d33668 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 ed546c91caf..755cbf53b69 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 168bcf4fcde..eff1a7751ab 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 3f457ecc969..cc03e968d23 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 adc16ff164e..c9484156542 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 6e49281a4fd..fb4742ccad2 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 cd95116c153..da3a932358b 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 60cdb0d3487..4c085fc73db 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 84bda02243c..b07f97e1ab3 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 a84d18cd3b9..914ae429321 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 9581c8453d1..ac66d45af60 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 c7fc4c32dcf..f550b7243db 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 8795ea49ed5..366f91eebc6 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 2cfbe4f7d1c..fe61bab2836 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 86fb0fb8017..c3c7e566abf 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 19df4c49d9e..f2bfa190bc7 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 0ed9492d54f..8a7cdfcd74d 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 72be5e9ff0a..804c04ee73c 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 ff5a49c0dae..7686421e2ff 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 00000000000..2dc890e24f6 --- /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 00000000000..1a913ed1910 --- /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 00000000000..3defd327817 --- /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 00000000000..cbc90bce730 --- /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 00000000000..c9b2ab8e403 --- /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 00000000000..c63c36c93fd --- /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 00000000000..30dd40aa74e --- /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 00000000000..6cf42e8089a --- /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 dd01ea32786..8555e7b062f 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 755cbf53b69..c71c0733d2e 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 5044ce20798..4f05ec0dbbd 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 914ae429321..9d1f84a9f23 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 ac66d45af60..c1c34c3b415 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 40e39947c21..260dc532e1c 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 6b7367488c2..3c9443a04f5 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 c3c7e566abf..6052882938e 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 00000000000..d42ff18354d --- /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 00000000000..6f540cf5d78 --- /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 00000000000..a197c6a7ce2 --- /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 00000000000..9e26dfeeb6e --- /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 00000000000..ca6940cb29f --- /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 00000000000..be664ec1f20 --- /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 00000000000..aa7d482ebf2 --- /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 00000000000..c98098e0680 --- /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 00000000000..93acbc1a8ad --- /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 00000000000..79dd8892bd3 --- /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 00000000000..06a3329c466 --- /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 00000000000..0c01d63ff2f --- /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 00000000000..60db85ae566 --- /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 00000000000..b6bc03fdc65 --- /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 00000000000..2c7e2516f60 --- /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 f4ecfbba930..d77710c139b 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 afbe298e2c5..8ab6110ab6f 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 fe19e42d046..e1e624f7f8c 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 921fac48944..f4b031d8369 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 7c4d64bacd3..2d91daf237c 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 d0edc4f2e90..d204a04928a 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 4f6eacb91c4..6266afad23d 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 e988a1add92..1be108cf443 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 d7bbd485581..e60a3d0bf24 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 06c17939b05..6b8e0de01eb 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 c284b57495a..cec546a49c6 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 960bab367e7..4cd0bc6c806 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 fc417e27160..81d552351d2 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 1dcda7bc119..99888e58f7b 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 ed69ede3580..dad259f1657 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 e92d187092c..76f589bd68f 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 a484fcf291d..5ac786315d7 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 f964b52a6cb..640a5bc51b3 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 a3ca4c9f695..2e59c0b51be 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 b23d680f780..f823c2a53bd 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 dbb11b5e887..040a2446576 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 b0156537996..1bffc8284bd 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 17d1f6682a3..4c76616d70b 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 17010526773..da7fe646cf9 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 950b741bf56..b9802a3c613 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 e9ca6fccb58..19c5da0efa7 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 3eaaefccdcb..65102316c28 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 dce8c5d8d73..387f33bdc49 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 0b421f525c4..d75258333ca 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 50c5c3afc7e..66b9a4f11ff 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 857b58a04f4..3826a6b017c 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 ca5d2b845ca..d6f83931ed7 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 a4ac08475ac..b22115aa844 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 0ec2d8a97d1..5208a7ab56a 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 7d8a7ef79c0..e640d24bb49 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 9f94f857af8..41194cca85b 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 f777c5cfa28..e8b752da871 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 a5de466b55b..6dcb81c8642 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 8d872ff03b4..0c66220cf3a 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 ea5a60186b5..cd7f51bb473 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 40e39947c21..eac5108d7d9 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 6b6328cf394..3a7fb35a236 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 7700d38a27e..fcf362588c1 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 65efd8f46e8..2b8b7433292 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 e49fe1d0fc3..fb5ade8ff7c 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 4aeb708e466..4c16db95527 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 1f6b60a598f..7ea80ab8529 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 d8c7d022d50..31e363f9304 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 ac31c61183e..d2e2bd5f746 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 ee4d5ac055d..696b237db8e 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 3b4912bdd12..0567b308705 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 6837465562d..63dcacccfca 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 4cd0c35f298..6d0105be29e 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 79e1b0ddce2..21cf4c55dea 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 7b657c28278..7e8e3c909fa 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 200b94b9171..1a84b8ede59 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 63e179fc493..5fc6cc926b4 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 b2e6891fbbd..33e81e05d8f 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 bbeb520ef30..594ae7de72e 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 7fdd0b1f9b4..0ed6cec4c81 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 49947d4b1ad..efdaa0f194b 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 4f38f32a694..6f88d59722f 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 9399ce1ce49..d9be960c13f 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 f3901459163..c931d9900e5 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 7b8051f7c74..ddd45ddaab3 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 38ce73201b0..b64df9f882b 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 455a5cc6422..bd56c3e0a36 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 122411d12bf..8ebb9137f9b 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 c049a21f881..61b20a25c45 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 312b2eb9978..6e96715912c 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 3d8212bc575..15e851ab4c0 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 2d0b44acf28..ed34fdb8500 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 3e62966c8fd..6b389f1e307 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 44fe5644859..cd2a397ad01 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 4a8400949aa..015a3de5d44 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 e20555605b7..e202f4c49fc 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 6b7d57a7501..d9d1f8c0f1e 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 0a82d5f0a3c..7fe8d4aa2f1 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 f69f4c9654a..0e33cee3c37 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 67325583316..f13d5622468 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 00000000000..fc0f172d493 --- /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 00000000000..9f234780f31 --- /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 00000000000..01296787110 --- /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 00000000000..150493aafbd --- /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 00000000000..3dbd7ca3468 --- /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 00000000000..3970de76200 --- /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 00000000000..321978ee733 --- /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 00000000000..a2bcc60eda9 --- /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 00000000000..1929b7adb89 --- /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 00000000000..2e168f898eb --- /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 00000000000..d11833b2f89 --- /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 00000000000..45db0ce79e9 --- /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 00000000000..67619e79aa8 --- /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 00000000000..e5b6889c75e --- /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 00000000000..bf9e4864ac9 --- /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 00000000000..7cfc1a7e324 --- /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 00000000000..f578a627e61 --- /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 00000000000..f30993de0f5 --- /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 00000000000..ae19f271c9b --- /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 00000000000..0917c38a351 --- /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 00000000000..3f3438f7e7c --- /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 00000000000..cd2585dc366 --- /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 00000000000..3fd93266663 --- /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 00000000000..4ab3812477a --- /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 00000000000..59d98ebc4af --- /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 00000000000..581e2ad66bc --- /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 00000000000..2a4d52aa1c6 --- /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 00000000000..e13e8edb445 --- /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 00000000000..7fc033b58e5 --- /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 00000000000..eb6ecaa45a2 --- /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 00000000000..e53ec7a5852 --- /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 00000000000..55749ca0792 --- /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 00000000000..dd0f70bc20b --- /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 00000000000..5194bbf4608 --- /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 00000000000..b87f3fdef6f --- /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 00000000000..40916743f1e --- /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 00000000000..45d72fbff68 --- /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 00000000000..3e9dffb5166 --- /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 00000000000..a222820114b --- /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 00000000000..2d6060ef93b --- /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 00000000000..63382e64bd2 --- /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 00000000000..fea003be283 --- /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 00000000000..4bd668e06be --- /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 00000000000..c046158b8e6 --- /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 00000000000..b0800ea58f2 --- /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 00000000000..1bd1728810f --- /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 00000000000..c0fe2fbc73b --- /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 00000000000..9429c0039d5 --- /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 00000000000..1c1a070ea1a --- /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 00000000000..301647848ff --- /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 00000000000..6a43de1da02 --- /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 00000000000..78ae48f05a6 --- /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 00000000000..ab8f9a46471 --- /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 00000000000..b781f36f21c --- /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 00000000000..9142537f81d --- /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 00000000000..1012a820016 --- /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 00000000000..c38aa91a062 --- /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 00000000000..e6afa4c1b52 --- /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 00000000000..18d06c9c13c --- /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 00000000000..48fdc2e8c9c --- /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 00000000000..6713b43d490 --- /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 00000000000..1466bd41f0c --- /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 00000000000..8ae252cadbd --- /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 00000000000..4543d89af98 --- /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 00000000000..1ac8741da63 --- /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 00000000000..0230e952833 --- /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 00000000000..e7ddd8328e2 --- /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 00000000000..39f530df859 --- /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 00000000000..41689ba066d --- /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 00000000000..f00e848e0ce --- /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 00000000000..0959927791a --- /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 00000000000..2b863daf455 --- /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 00000000000..164f1dfff01 --- /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 00000000000..e9cc2ca27da --- /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 00000000000..8e1851b3e0a --- /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 00000000000..9ab66212102 --- /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 00000000000..4edb318d329 --- /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 d77710c139b..dc7aaf694c8 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 8ab6110ab6f..d58d1d9564d 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 2d248c5e1f9..c0f5df26cb6 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 dc0fcac588d..458b2218348 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 e1e624f7f8c..dc8df500b04 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 fb7ec08c306..b048e2b230d 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 79dd8892bd3..82c4b576cf8 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 0c01d63ff2f..db87cd42326 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 79dd8892bd3..dec3c76783d 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 983f8a1abc3..7e2d69c3924 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 25af50d9571..3ce94c6fd40 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 157d4655c2c..af0990f12a4 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 b346029b6fe..00000000000 --- 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 00000000000..7ccf9123ef4 --- /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 a0a2c911241..90da7721f3f 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 00000000000..9eda89be103 --- /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 00000000000..f690006bb8c --- /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 00000000000..8f7e9ed5401 --- /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 29fa5398886..00000000000 --- 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 8efead9e0f2..26a47fc1ffa 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 6b8e0de01eb..9146dad15df 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 13f43a32083..b19bdf23e0a 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 9b3f177c2b6..398bca18234 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 ac9761aec5a..f4514f2754d 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 00000000000..4dbfd51fbd4 --- /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 00000000000..e69de29bb2d diff --git a/packages/experimental/Avatar/src/AvatarNativeComponent.macos.ts b/packages/experimental/Avatar/src/AvatarNativeComponent.macos.ts new file mode 100644 index 00000000000..7ead367b2ed --- /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 37a0f376a9c..7f04c61c815 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 291cec6ddab..5493684a0e3 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 70e6f337b10..2e0874d9aa1 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 ea1b70ff424..3c69b026865 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 0ff09320d08..dc1ff03199e 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 00000000000..29d34186eb3 --- /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 f1e8473dcad..bddcaf89bbe 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 00000000000..8332e9b13fd --- /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 9984ad3b4ae..612869c70ce 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 33e81e05d8f..eb1f011ddb9 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 8ebb9137f9b..233f5fc9732 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 f13d5622468..653897efe30 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 00000000000..12a026bdfa7 --- /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 00000000000..e07a428e726 --- /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 4e0a84023b6..23e6d1b7687 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 10085c57433..603a77b7a2d 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 2979d53be61..a6e94dbe60b 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 5b18424acff..26d5dac70ea 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 097b99b3567..c2305a0673d 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 48774761396..08ef20a78ad 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 53470446b2a..d7f0630bb03 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 69f1bdc461c..4d2a7fb5ad4 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 7826f7a6bb4..9a81eb3cd67 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 b1fa373dd66..aabd8231c47 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 9231a810e3f..e0fb41c2ee9 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 90caaf8dc98..49c8f38ee50 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 d0355972a25..08b8180ed3a 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 b07f97e1ab3..1fcb817ad15 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 e4a50123976..a5133d779e2 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 8555e7b062f..2a76b5c91b6 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 1fcb817ad15..8d285a187dc 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 3ae136e59e5..a48ea2b55fd 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 d42ff18354d..00000000000 --- 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 d42ff18354d..00000000000 --- 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 06a3329c466..00000000000 --- 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 d42ff18354d..00000000000 --- 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 6e3d33ed9e0..38de7b66b72 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 18517b4ce8c..426cb32dcee 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 8d285a187dc..6e4052a3181 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 9d1f84a9f23..33c4b830054 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 c1c34c3b415..913b298f250 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 47598bb0d32..1915869ff8c 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 dbf2645ec4e..408d6771ae8 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 0e63e67f57f..ead4bd354cc 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 c6863970b84..e0220ddfa3c 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 f87cb6f0b8e..8bd4fbb0eec 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 23fa6974d23..5cd769f5230 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 f35047a9b28..f0475947922 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 da1aff58d0b..4af8ca687eb 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 34eab28b9f0..499907ca2e3 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 ecf9370a198..da17a293360 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 96b5eeaf2ab..39a1ac265a9 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 1428edea563..b1d1b0efdda 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 14218ce3f59..cddb63c7fac 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 28d69944722..e5ac00f29fd 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 c56e2ac1816..4909b65afe9 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 d58ddcf3771..a7a2de18f28 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 2c6388c8f25..49f18853b4f 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 4df2ea43707..2f58da54cdc 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 872ddec43c2..62425fe9c03 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 00000000000..62520383717 --- /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 00000000000..5a9170abe06 --- /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 00000000000..7fb9a0bf7d7 --- /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 00000000000..eac0aa4e6ff --- /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 00000000000..2eed07832b2 --- /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 00000000000..0c9de6905c5 --- /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 00000000000..2bfccf40ba3 --- /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 00000000000..4142f4d0bba --- /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 00000000000..4886e4d1d3d --- /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 d58d1d9564d..44aea0d00df 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 dc8df500b04..d2e3dbabba4 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 78fda8f40a0..b0f36473750 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 1b305b610c9..51ce77242f6 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 6f4b34ac281..79e4ea0d9d9 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 33f7e629cce..2c7aa2cdff8 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 f7942b8fbee..675848de246 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 a1ac9d15baa..6c1f5b2f2fc 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 df9a23c17d4..4e121997fe9 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 f4b031d8369..70a6cc4eb0e 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 2d91daf237c..83870ea0153 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 d204a04928a..6b5a03b7268 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 78ac37f0333..529e677ea9a 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 490fe22fb8a..c8b5d6fb2f4 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 6266afad23d..7a2984c404b 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 1be108cf443..58d14836a28 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 fb66899c5a7..9fd8f0f80c2 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 e60a3d0bf24..f5d5a087ac8 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 9146dad15df..fca6c690939 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 cec546a49c6..f319d59673e 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 4cd0bc6c806..868344415ca 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 81d552351d2..773740f6c97 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 41fe87eb4d5..bfac0262806 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 a6e94dbe60b..182d8f21176 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 dad259f1657..e46f271da20 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 76f589bd68f..9a187c45604 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 5ac786315d7..4878bd4c657 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 906a60664d1..7bf31cf49a7 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 45e60d98e55..8fb3e4fb6af 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 23c71c4b0b7..91b5b5ff082 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 6df89885c74..316fe78acf6 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 e83af30d5f1..e3387cfa680 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 648940c02f2..eb42c7a9e86 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 93f8a8d8cb2..9287bb45339 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 58450aeebee..72c726a6acc 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 a4efdfc2446..19d25e1cd7e 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 640a5bc51b3..0e69e827b80 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 2e59c0b51be..cbb49745bd9 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 5e72a34b810..8bd336f263c 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 f823c2a53bd..7634184e59e 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 040a2446576..9eff723d60e 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 1bffc8284bd..ea8ab587ab3 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 c822618fe3f..7beb71ff1c2 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 4c76616d70b..d7ec03c377e 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 2f359e4ac8a..2fa97ebaf87 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 d2bf91ed54d..005b8b94212 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 0137e140226..35441aff921 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 faa4035cf07..9c58bbd40c4 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 b404b1c93ef..94b276b5ec3 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 c1e1da3364f..ad771c53e2d 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 3fa0bac013e..21293286992 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 e023d6ae1ff..368f1150dac 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 dd30dd81c29..f13d88b5bed 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 a4e9aef3665..29917aaf2f1 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 e9df4db5679..21112a731d0 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 da7fe646cf9..9c3044958f9 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 b9802a3c613..294ae3b5ced 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 e5ac00f29fd..36c545be63e 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 19c5da0efa7..648e22975e6 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 4f05ec0dbbd..0c7e5cfedee 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 4909b65afe9..803c6c02334 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 65102316c28..10020c5fe95 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 12d7ed41d58..b4a7ed453d5 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 6f8a593104e..5f5f6523d1b 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 dcad8865a1c..b1aa19309e9 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 47a3fc69afc..08d22b0d7ed 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 95253f3a2cc..5f84f678537 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 32fdca740f5..f8c6d047e69 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 387f33bdc49..3554668889b 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 02bd31f62af..fa9070b98c8 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 397ab3a4f91..aaf19a1ad92 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 d75258333ca..50f2fcb8e6f 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 66b9a4f11ff..3c5949b1e3d 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 3826a6b017c..97e07a50ced 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 d6f83931ed7..38136992f16 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 bcbcfd218a6..d74140fe3d1 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 b22115aa844..f5959f3b54f 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 2b9521f360d..a732ec5a0a6 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 5208a7ab56a..3d09d7e8e69 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 e640d24bb49..02198afcfe2 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 41194cca85b..183a9a3e749 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 e8b752da871..d3f21ec2216 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 6dcb81c8642..ac8fc42326a 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 0c66220cf3a..f2ab887e36e 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 cd7f51bb473..00551d8c49e 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 276af121647..fe7e877a894 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 3a7fb35a236..18724954b3e 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 1437677c163..bafe95a7d68 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 fcf362588c1..6f91d4eb309 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 2b8b7433292..34b9cd72229 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 fb5ade8ff7c..24d43da0fdc 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 4c16db95527..b4322f2b8af 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 7ea80ab8529..52faf37c5be 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 50c39ff5bb2..a9b3e134173 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 d2e2bd5f746..33deb02c2a0 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 665e8b1b47a..1262a08abe4 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 2f58da54cdc..a85187b9ee6 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 0567b308705..b81943bc0b1 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 63dcacccfca..d40a9dd2766 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 6d0105be29e..2cc3a96558f 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 ba23db59e44..d32bb42f165 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 7e8e3c909fa..2555e04c427 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 1a84b8ede59..cead0402a0d 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 8001efd8cef..03e05b87ebc 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 8ade77717ec..5a2e3b38560 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 5fc6cc926b4..b21b088a297 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 eb1f011ddb9..b5e5a1bd5f2 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 594ae7de72e..8a34120f5d9 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 0ed6cec4c81..852b291eafd 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 efdaa0f194b..beab82b548f 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 6f88d59722f..8a28b55dc75 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 d9be960c13f..6033cd041e8 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 c931d9900e5..62454e01ac0 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 ddd45ddaab3..fc7b975a819 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 7aab73dce0a..62d37b26add 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 b64df9f882b..e09837c39e9 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 bd56c3e0a36..77a597c3a7c 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 ff42009b652..6816ba4dde7 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 233f5fc9732..ec91f2e57b5 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 94f91401db9..b5bbf472450 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 61b20a25c45..744dfc70ab8 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 6e96715912c..f273a3683e6 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 15e851ab4c0..f65e5873afe 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 ed34fdb8500..69d5fecae15 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 6b389f1e307..4eb7e35b208 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 cd2a397ad01..3716bfddfa1 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 015a3de5d44..022af112709 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 2029e9d4b29..00000000000 --- 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 e202f4c49fc..52f1a6fca64 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 7913f33a56b..00000000000 --- 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 1d2efb17fb3..00000000000 --- 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 862a4d77063..00000000000 --- 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 73757ff79ce..00000000000 --- 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 d2d3f9d3694..00000000000 --- 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 9b0cc7ba612..00000000000 --- 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 378a9918ad2..00000000000 --- 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 233f2ccafaa..00000000000 --- 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 b0082b61de1..00000000000 --- 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 6ca6b674910..00000000000 --- 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 d9506220f13..bae2fd574f3 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 55184790e5e..00000000000 --- 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 d0f89ed0685..00000000000 --- 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 00000000000..7d2770872fa --- /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 6ddb9b2e7e3..601e62ba1f1 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 00000000000..6a3330f8a32 --- /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 00000000000..085b2ed285c --- /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 d9d1f8c0f1e..5abbddbb71a 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 f30665abe13..3bb0e573737 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 430dfed6a3d..3da476cba0b 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 c4eea13373e..00000000000 --- 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 42c780d9d3c..af309afeec7 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 512b45ae1bd..00000000000 --- 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 be53c98b99c..00000000000 --- 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 7fe8d4aa2f1..c5795032469 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 b49bd39c456..77acc2d048a 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 0e33cee3c37..2e0403bf795 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 82c89143777..008f133427a 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 05ac363c291..629dc0a2b08 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 6d712a4a999..f48365adbd3 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 784a912587b..459b5e42425 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 841d331f912..5c3af8919fb 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 d9e20506d5c..d68018e11d5 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 648e22975e6..7ded0944c47 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 52f1a6fca64..750b43daa67 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 d68018e11d5..cb8edd287ea 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 4a8ea62acc6..20efe975974 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 0beab6e254f..72a8e7aea9a 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 e11d59ce08a..e0f282f5e3f 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 9b59759233f..645f75c9113 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 fdbe970f171..ac277711166 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 c06bbea21d4..9cff06bb3b6 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 0232bff796e..0b1356b63d9 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 02fde879824..93a2bda4707 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 2160fdef53c..d332c5251c3 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 3bfdba8488d..da900e9a654 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 6432d26b285..55c521ccf30 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 9c58bbd40c4..103fc342ce9 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 e53b765d38f..5b276d7041c 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 f13d88b5bed..4f9e5f9de33 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 cce9c3232b0..72f8e19746c 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 b3d800d6495..9cd424856d8 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 a2412548c98..9eca778c59a 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 99776a9ac0f..5e31d6bc58b 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 e35d4a0faae..ae7531f1cb7 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 d85663f2860..affb11672a0 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 5f5f6523d1b..50aacacadb3 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 af4ca45659e..407e8778c44 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 5f84f678537..18302c70135 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 49849f43fcd..2d437074639 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 5d6cf3bbaff..0e6102c7673 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 32be8c3145a..ed6516220b0 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 57a0f1bb3eb..fefc8ec0e29 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 c99a0f52c65..aa920b19077 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 6b82ed79d61..7c7ee1820cd 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 63d2cc9f0d3..500fda50ca1 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 b7d72ce93e3..88c4167ec1f 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 9dfe33f1195..368d259a250 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 a5133d779e2..0e1542169c5 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 66a8f07fbd1..13bb3376531 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 a68f826ebcb..011ecaef44e 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 2a76b5c91b6..c37f28a5813 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 5b48b3e6e0f..ddd866b58fe 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 804c04ee73c..506791f6074 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 a38ef4c65a7..8b9e557965c 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 6816ba4dde7..a7bdfd1961e 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 c53e45937e1..6330eb55b17 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 987cd34f608..a9b3c44c405 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 4ff3950cf0c..4843a87414f 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 77acc2d048a..d07e435844c 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 ec6a16b9cae..58ca08c01bf 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 cb8edd287ea..931aa4f5dbf 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 00000000000..9a22087e99f --- /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 00000000000..334bc70d170 --- /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 00000000000..a180c2debf9 --- /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 00000000000..ca9a51cdea8 --- /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 00000000000..7c88adbf6a6 --- /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 00000000000..9b2c5069c57 --- /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 00000000000..40c6dea3684 --- /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 00000000000..56b7a8200cb --- /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 00000000000..63ec73e8dd0 --- /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 00000000000..51183ac545a --- /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 00000000000..3fcc03bf333 --- /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 00000000000..98c1e8ed114 --- /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 00000000000..e5407092d1b --- /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 00000000000..4cc420ff179 --- /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 00000000000..568fdb1650c --- /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 00000000000..33e31e55d43 --- /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 00000000000..1226227a276 --- /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 00000000000..bbf7f007647 --- /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 00000000000..bffcca167d0 --- /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 00000000000..606e49214df --- /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 00000000000..6fa80c715fb --- /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 00000000000..e4b2ed56886 --- /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 00000000000..90dfa04663c --- /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 00000000000..c768c083f61 --- /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 00000000000..1cc265df278 --- /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 00000000000..4effb236859 --- /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 00000000000..02614943c04 --- /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 00000000000..210d6e12cf1 --- /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 00000000000..b309cd16cda --- /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 00000000000..b32dd59cf34 --- /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 00000000000..b0614dea0bc --- /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 00000000000..ea3a06d890d --- /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 00000000000..6e67591d3b2 --- /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 00000000000..a2a1068f2be --- /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 00000000000..58740a95ae9 --- /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 00000000000..38658776576 --- /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 00000000000..8a8f0ae0bb8 --- /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 00000000000..8bf66a21aa3 --- /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 00000000000..c8c8106c2c1 --- /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 00000000000..1ef31a1532e --- /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 00000000000..0399fb6ba6f --- /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 00000000000..7230810aae3 --- /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 00000000000..02b17c6c3b4 --- /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 00000000000..81660462d41 --- /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 00000000000..cd3365c2e77 --- /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 00000000000..cc1e4f527cd --- /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 00000000000..9d84111db54 --- /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 00000000000..bf1a2657414 --- /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 00000000000..98f21449030 --- /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 00000000000..b7449a15442 --- /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 00000000000..f49227db9d8 --- /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 00000000000..0ee45e2921c --- /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 00000000000..7e46bb02933 --- /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 00000000000..f7d990f0ee6 --- /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 00000000000..4c67a6e5f9c --- /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 00000000000..aaa81229c6d --- /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 00000000000..0e9db9ba407 --- /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 00000000000..9aac48ff766 --- /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 00000000000..511576aa4f3 --- /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 00000000000..b57a1286501 --- /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 00000000000..d765c4aca77 --- /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 00000000000..7277983628a --- /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 00000000000..c656a3d3c93 --- /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 00000000000..6f3e6431f28 --- /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 00000000000..44c328e9084 --- /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 00000000000..757ba945b98 --- /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 00000000000..92871af3407 --- /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 00000000000..47135003f15 --- /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 00000000000..bacc4a1b42a --- /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 00000000000..6953dbc946f --- /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 00000000000..366a32436dd --- /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 00000000000..8ada110778d --- /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 00000000000..113789664d9 --- /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 00000000000..2c67c5e6ab3 --- /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 00000000000..8e7bd5b4fd6 --- /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 00000000000..284481d76cf --- /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 bc4f16f2965..2fd8303bfb6 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 3458cc297af..7c7dba5db47 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 663f5d25f91..feb9412d780 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 93a2bda4707..3bed547f1e7 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 00000000000..a33cfef28ec --- /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 7ccf9123ef4..b6563d44908 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 a5008031fd7..24b12590182 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 21112a731d0..a8d25dc5ecb 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 c93c71bb558..e1933e787b3 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`] = `