Skip to content

[pull] main from expo:main#926

Merged
pull[bot] merged 4 commits into
code:mainfrom
expo:main
Jun 2, 2026
Merged

[pull] main from expo:main#926
pull[bot] merged 4 commits into
code:mainfrom
expo:main

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Jun 2, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

gabrieldonadel and others added 4 commits June 2, 2026 13:49
# Why

Adding macOS support for `expo-symbols` will allow us to drop Orbit's
custom system-icon-view module

# How

- Add `UIImageView` alias to `NSImageView` in modules-core
- Added the missing AppKit equivalents for `expo-symbols` to work, like
`NSImage(systemSymbolName:accessibilityDescription:)`,
`NSImageView.imageScaling`, `SymbolWeight.imageSymbolWeight()` etc
 

# Test Plan

- Build and run BareExpo-macOS
- Verify the `ExpoSymbols:` row in the macOS app renders five native SF
Symbols
- Confirm iOS still renders SF Symbols unchanged

---------

Co-authored-by: Expo Bot <34669131+expo-bot@users.noreply.github.com>
# Why

Adding `macOS` support for expo-clipboard will allow us to drop
react-native-clipboard from Orbit's dependencies.

# How

The native module functions are now mostly platform-agnostic, on macOS
we extended `NSPasteboard` (via the alias) with the small surface the
module already uses on iOS: `.string`, `.url`, `.html`, `.image`,
`.hasStrings`, `.hasHTML`, `.hasURLs`, `.hasImages`. An `NSImage`
extension adds `pngData()` / `jpegData(compressionQuality:)` via
`NSBitmapImageRep`, mirroring the UIKit names so `imageToData` stays
unchanged. With those abstractions in place, we can keep native module
class functions basically unchanged on both platforms.

The only iOS-specific code that remains under `#if !os(macOS)` is
`ClipboardPasteButton` given that macOS has no `UIPasteControl`
equivalent and `addClipboardListener` because we don't have something
like `UIPasteboard.changedNotification`on AppKit.

 

# Test Plan

Tested `bare-expo` on macOS with a manual clipboard panel with one
button per public API.
<img width="619" height="290" alt="image"
src="https://github.com/user-attachments/assets/646ab905-cc8c-42b2-b57f-f02ca6798ea4"
/>

---------

Co-authored-by: Expo Bot <34669131+expo-bot@users.noreply.github.com>
# Why

`@expo/ui/swift-ui/modifiers` exposes `listRowSeparator`, but does not
expose SwiftUI's `listRowSpacing(_:)` modifier for controlling vertical
spacing between rows in `List` and `Form`.

Supersedes #40636.

# How

- Added `listRowSpacing(spacing?)` to `@expo/ui/swift-ui/modifiers`.
- Added and registered the iOS SwiftUI modifier in
`ViewModifierRegistry`.
- Added a Native Component List example that applies `listRowSpacing` to
`Form`.
- Rebuilt package type artifacts and regenerated docs API data.

# Test Plan

- `pnpm build` in `packages/expo-ui`
- `pnpm lint --max-warnings 0` in `packages/expo-ui`
- `pnpm test -- --runInBand` in `packages/expo-ui`
- `pnpm tsc` in `apps/native-component-list`
- `pnpm --dir tools et gdad -p expo-ui/swift-ui/modifiers`
- Built and launched `apps/bare-expo` on iPhone 17 Pro Simulator, then
verified the Native Component List modifiers screen renders the
`listRowSpacing` example.

# Checklist

- [x] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
…roid config plugin (#46463)

# Why

Android widgets are still in development, but part of that is already
cherry-picked to SDK 56.

# How

Add a temporary `enableAndroid` flag to `expo-widgets` so Android config
plugin wiring only runs when explicitly enabled.

# Test Plan

Create a project with expo-widgets and do not set `enableAndroid: true`

# Checklist

- [x] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
@pull pull Bot locked and limited conversation to collaborators Jun 2, 2026
@pull pull Bot added the ⤵️ pull label Jun 2, 2026
@pull pull Bot merged commit a301cd3 into code:main Jun 2, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants