Repository navigation
Consolidate Callout and FocusZone into native-core - #4354
Merged
Merged
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
Bundle size reportTree-shaken, minified production esbuild bundles with React and React Native runtimes externalized.
The job is advisory: size changes are reported but do not fail the pull request. Bundle or analysis errors still fail. |
Jason Morse (JasonVMo)
enabled auto-merge (squash)
October 2, 2026 22:55
Vladimir Morozov (vmoroz)
approved these changes
Oct 2, 2026
5 of 10 tasks
Jason Morse (JasonVMo)
added a commit
that referenced
this pull request
Oct 2, 2026
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Jason Morse (JasonVMo)
added a commit
that referenced
this pull request
Oct 3, 2026
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Platforms Impacted
Description of changes
Consolidate the existing Callout and FocusZone implementations into
@fluentui-react-native/native-core, while preserving their public APIs and native registration names.src/legacy, exported only from@fluentui-react-native/native-core/legacy. Keep the root andmacos,windows,win, andwin32entrypoints reserved for modern APIs.@fluentui-react-native/calloutand@fluentui-react-native/focus-zoneas JS-only compatibility shims underpackages/shim, including exact component identity and deprecated type aliases.FRNNativeCoremacOS pod, one Windows Fabric library/package provider, and oneFRNNativeCoreSpeccodegen boundary. macOS retains shared AppKit behavior plus Paper and Fabric adapters; Win32 continues using its host-provided native implementations.Consumer migration: native apps must directly depend on native-core, remove explicit old pod/project references, and regenerate native autolinking/Pods. Existing imports from the Callout and FocusZone shim packages remain supported. Modern consumers can import the preserved APIs from
@fluentui-react-native/native-core/legacy.This is an ownership/API-boundary migration, not a new modern component or TurboModule implementation.
Verification
The following passed for the final branch source. Storybook commands run from
apps/storybook; other commands run from the repository root.yarn workspace @fluentui-react-native/native-core format --checkyarn workspace @fluentui-react-native/native-core lintyarn workspace @fluentui-react-native/native-core testyarn workspace @fluentui-react-native/callout testyarn workspace @fluentui-react-native/focus-zone testyarn workspace @fluentui-react-native/native-core codegen:windows --checkyarn buildyarn check-publishingyarn lint-lockfileyarn change:checkyarn storybook prep --macosyarn storybook build --macosyarn storybook bundle --macosyarn storybook bundle --windowsyarn storybook bundle --win32yarn format --checkandyarn lintin StorybookSTORYBOOK_SMOKE_STORY='native-*' yarn storybook smoke --macos --mode stories-and-testsThe macOS native cases exercise Callout window creation,
onShow/onDismiss, outside-click dismissal and reopening, plus FocusZone directional/geometric navigation, Tab/Shift+Tab exits, and the nested-first-child backward-exit regression.Earlier Windows-host migration validation also passed:
yarn storybook prep --windowsandyarn storybook build --windowsFRNNativeCore.dllandFRNNativeCore.winmdbuiltyarn storybook smoke --windows --mode storiesyarn storybook smoke --win32 --mode storiesyarn lage test --no-cache --concurrency 4666bcdd67; not rerun as a full graph after the macOS follow-upQualification boundaries: Windows/Win32 native builds and smoke were not rerun from the macOS host; their final-head JS bundles were rerun. macOS Paper clean-builds, but runtime/input parity remains unqualified: the current native automation lane lacks Paper enabled-state observations and reliable popup activation. The temporary Paper configuration was removed and the final app restored to Fabric. The existing Windows Callout story exclusion remains unchanged. iOS, Android, VoiceOver, and RTL-specific qualification were not performed. Earlier Windows validation reported existing repo-wide lint/link problems outside this change; those checks are not claimed as passing here.
/legacyentrypointPull request checklist
This PR has considered (when applicable):