diff --git a/TEMP-REVERT-BEFORE-MERGE.md b/TEMP-REVERT-BEFORE-MERGE.md
new file mode 100644
index 000000000..d10f1933a
--- /dev/null
+++ b/TEMP-REVERT-BEFORE-MERGE.md
@@ -0,0 +1,33 @@
+# TEMPORARY: revert before merging the React Native 0.88 upgrade
+
+To test the React Native 0.88 upgrade, two dependencies are installed from tarballs in `temp-vendor/`, packed from
+unreleased branches:
+
+- `@mendix/pluggable-widgets-tools` from
+ [`MxKevinBeqo/widgets-tools#moo/MOO-2499-rn-088`](https://github.com/MxKevinBeqo/widgets-tools/tree/moo/MOO-2499-rn-088)
+ (commit `bfb3b44`), instead of npm.
+- `mendix-native` from [`mendix/mendix-native#moo/MOO-2500-rn-0.88`](https://github.com/mendix/mendix-native/tree/moo/MOO-2500-rn-0.88)
+ (commit `76aba2e`, version 0.6.2), instead of the
+ [v0.6.0 release](https://github.com/mendix/mendix-native/releases/tag/v0.6.0) that `video-player-native`,
+ `mobile-resources-native` and `nanoflow-actions-native` depend on.
+
+Once versions with React Native 0.88 support are released, undo the following and delete this file.
+
+1. `package.json` → `pnpm.overrides`:
+ - Set `@mendix/pluggable-widgets-tools` back to the released version (it was `11.12.0` before this change) instead
+ of `file:temp-vendor/mendix-pluggable-widgets-tools-11.15.0-moo-2499-rn-088-bfb3b44.tgz`.
+ - Remove the `mendix-native` override, and point the `mendix-native` dependency of the three packages above at the
+ new release.
+2. Delete the `temp-vendor/` folder.
+3. Run `pnpm install` to update `pnpm-lock.yaml`.
+
+## Why tarballs and not git dependencies
+
+CI installs with `pnpm install --frozen-lockfile --ignore-scripts`. A git dependency only gets its compiled output from
+its `prepare`/`prepack` script, which `--ignore-scripts` skips, so every widget build failed with
+`Cannot find module '../dist/commands/audit.js'`. The tarballs ship their compiled output prebuilt, like the published
+packages. To pick up a newer commit of a branch, repack it from a clean checkout of that commit, replace the file and
+update the override:
+
+- widgets-tools: `pnpm install --frozen-lockfile`, then `pnpm pack` in `packages/pluggable-widgets-tools`.
+- mendix-native: `yarn install --immutable`, `yarn prepare` and `yarn pack`, the same steps as its release workflow.
diff --git a/configs/e2e/native_dependencies.json b/configs/e2e/native_dependencies.json
index 2b68899f3..aeea79d06 100644
--- a/configs/e2e/native_dependencies.json
+++ b/configs/e2e/native_dependencies.json
@@ -11,7 +11,7 @@
"@react-native-async-storage/async-storage": "2.2.0",
"react-native-vision-camera": "4.7.3",
"react-native-view-shot": "5.1.0",
- "react-native-blob-util": "0.24.7",
+ "react-native-blob-util": "0.24.11",
"react-native-file-viewer-turbo": "0.7.4",
"react-native-localize": "3.7.0",
"react-native-image-picker": "7.2.3",
diff --git a/configs/jsactions/rollup.config.mjs b/configs/jsactions/rollup.config.mjs
index 94cc39bc7..cb492f811 100644
--- a/configs/jsactions/rollup.config.mjs
+++ b/configs/jsactions/rollup.config.mjs
@@ -31,10 +31,11 @@ export default async args => {
sourceMap: false,
inlineSources: false,
target: "es2019",
- types: ["mendix-client", "react-native"],
+ types: ["mendix-client"],
allowSyntheticDefaultImports: true,
compilerOptions: {
newLine: "CRLF",
+ moduleResolution: "bundler",
// `react-native-nitro-geolocation` ships no compiled JS; its entry points are `.tsx`
// (`main: "src/index"`, `browser: "src/index.web.tsx"`). The TS plugin therefore needs
// `jsx` set to parse those `.tsx` files, otherwise the build fails with
diff --git a/package.json b/package.json
index d96a3d6f2..a759ab37d 100644
--- a/package.json
+++ b/package.json
@@ -45,7 +45,8 @@
"devDependencies": {
"@commitlint/cli": "^19.8.1",
"@commitlint/config-conventional": "^19.8.1",
- "@react-native/babel-preset": "0.84.1",
+ "@react-native/babel-preset": "0.88.0",
+ "@react-native/jest-preset": "0.88.0",
"@testing-library/react-native": "^13.3.3",
"@types/big.js": "^6.2.2",
"@types/concurrently": "^6.4.0",
@@ -53,8 +54,8 @@
"@types/jasmine": "^3.10.19",
"@types/mime": "^2.0.3",
"@types/node": "^20.19.37",
- "@types/react": "~19.2.14",
- "@types/react-dom": "~19.2.3",
+ "@types/react": "~19.3.0",
+ "@types/react-dom": "~19.3.0",
"@types/react-test-renderer": "~19.1.0",
"@types/shelljs": "^0.8.17",
"@types/xml2js": "^0.4.14",
@@ -66,7 +67,7 @@
"lint-staged": "^11.2.6",
"mendix-client": "^7.15.8",
"pretty-quick": "^3.3.1",
- "react-dom": "19.2.3",
+ "react-dom": "19.3.0",
"recursive-copy": "^2.0.14",
"ts-node": "^10.9.2"
},
@@ -80,20 +81,21 @@
},
"pnpm": {
"overrides": {
- "@mendix/pluggable-widgets-tools": "11.12.0",
+ "@mendix/pluggable-widgets-tools": "file:temp-vendor/mendix-pluggable-widgets-tools-11.15.0-moo-2499-rn-088-bfb3b44.tgz",
+ "mendix-native": "file:temp-vendor/mendix-native-0.6.2-moo-2500-rn-0.88-76aba2e.tgz",
"@rollup/plugin-typescript": "12.3.0",
"mendix": "11.8.0",
"eslint": "9.39.4",
- "react": "19.2.3",
- "react-dom": "19.2.3",
- "react-native": "0.84.1",
- "@types/react": "~19.2.14",
- "@types/react-dom": "~19.2.3",
+ "react": "19.3.0",
+ "react-dom": "19.3.0",
+ "react-native": "0.88.0",
+ "@types/react": "~19.3.0",
+ "@types/react-dom": "~19.3.0",
"@prettier/plugin-xml": "2.2.0",
"cheerio": "1.0.0-rc.12",
"typescript": "~5.9.3",
"rollup": "4.30.1",
- "react-test-renderer": "19.2.3",
+ "react-test-renderer": "19.3.0",
"@xmldom/xmldom": ">=0.8.13",
"flatted": ">=3.4.2",
"immutable": ">=5.1.5",
@@ -103,10 +105,6 @@
"svgo": ">=2.8.1",
"undici": ">=6.24.0",
"lodash": ">=4.18.0"
- },
- "patchedDependencies": {
- "react-native-gesture-handler@2.31.2": "patches/react-native-gesture-handler+2.31.2.patch",
- "@mendix/pluggable-widgets-tools@11.12.0": "patches/@mendix__pluggable-widgets-tools@11.12.0.patch"
}
},
"packageManager": "pnpm@10.32.0+sha512.9b2634bb3fed5601c33633f2d92593f506270a3963b8c51d2b2d6a828da615ce4e9deebef9614ccebbc13ac8d3c0f9c9ccceb583c69c8578436fa477dbb20d70"
diff --git a/packages/jsActions/mobile-resources-native/CHANGELOG.md b/packages/jsActions/mobile-resources-native/CHANGELOG.md
index 914e2093c..5cc63591e 100644
--- a/packages/jsActions/mobile-resources-native/CHANGELOG.md
+++ b/packages/jsActions/mobile-resources-native/CHANGELOG.md
@@ -15,6 +15,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Fixed an issue where the `TakePicture` and `TakePictureAdvanced` actions failed to capture photos on Android.
- Fixed an issue where the `TakePicture` and `TakePictureAdvanced` actions did not properly clean up temporary files.
- Replaced @notifee/react-native with react-native-notify-kit library.
+- Updated react-native from version v0.84.1 to v0.88.0.
+- Updated react-native-blob-util from version v0.24.7 to v0.24.11.
+- The [backgroundColor], [translucent] and [networkActivityIndicatorVisible] parameters of the Change status bar action no longer have any effect, because react-native v0.88 removed support for them.
### Added
diff --git a/packages/jsActions/mobile-resources-native/package.json b/packages/jsActions/mobile-resources-native/package.json
index 2a82bceca..025e751ca 100644
--- a/packages/jsActions/mobile-resources-native/package.json
+++ b/packages/jsActions/mobile-resources-native/package.json
@@ -1,7 +1,7 @@
{
"name": "mobile-resources-native",
"moduleName": "Native Mobile Resources",
- "version": "12.2.0",
+ "version": "13.0.0",
"license": "Apache-2.0",
"copyright": "© Mendix Technology BV 2022. All rights reserved.",
"repository": {
@@ -36,7 +36,7 @@
"fbjs": "3.0.4",
"mendix-native": "https://github.com/mendix/mendix-native/releases/download/v0.6.0/mendix-native-v0.6.0.tgz",
"mime": "3.0.0",
- "react-native-blob-util": "0.24.7",
+ "react-native-blob-util": "0.24.11",
"react-native-device-info": "15.0.2",
"react-native-file-viewer-turbo": "0.7.4",
"react-native-image-picker": "7.2.3",
diff --git a/packages/jsActions/mobile-resources-native/src/platform/ChangeStatusBar.ts b/packages/jsActions/mobile-resources-native/src/platform/ChangeStatusBar.ts
index d40cc977d..fd6312464 100644
--- a/packages/jsActions/mobile-resources-native/src/platform/ChangeStatusBar.ts
+++ b/packages/jsActions/mobile-resources-native/src/platform/ChangeStatusBar.ts
@@ -5,7 +5,7 @@
// - the code between BEGIN USER CODE and END USER CODE
// - the code between BEGIN EXTRA CODE and END EXTRA CODE
// Other code you write will be lost the next time you deploy the project.
-import { Platform, StatusBar, StatusBarAnimation, StatusBarStyle } from "react-native";
+import { StatusBar, StatusBarAnimation, StatusBarStyle } from "react-native";
// BEGIN EXTRA CODE
// END EXTRA CODE
@@ -41,16 +41,12 @@ export async function ChangeStatusBar(
StatusBar.setHidden(hidden, animateHideShow);
}
- if (backgroundColor && Platform.OS === "android") {
- StatusBar.setBackgroundColor(backgroundColor, animateChanges);
- }
-
- if (translucent !== undefined && Platform.OS === "android") {
- StatusBar.setTranslucent(translucent);
- }
-
- if (networkActivityIndicatorVisible && Platform.OS === "ios") {
- StatusBar.setNetworkActivityIndicatorVisible(networkActivityIndicatorVisible);
+ // React Native 0.88 removed the status bar background color, translucency and network activity
+ // indicator APIs, as apps are always rendered edge-to-edge. These parameters no longer have any effect.
+ if (backgroundColor || translucent || networkActivityIndicatorVisible) {
+ console.warn(
+ "ChangeStatusBar: the 'backgroundColor', 'translucent' and 'networkActivityIndicatorVisible' parameters are no longer supported and will be ignored."
+ );
}
return Promise.resolve();
diff --git a/packages/jsActions/mobile-resources-native/src/tsconfig.json b/packages/jsActions/mobile-resources-native/src/tsconfig.json
index c58a8b530..d2d3fe415 100644
--- a/packages/jsActions/mobile-resources-native/src/tsconfig.json
+++ b/packages/jsActions/mobile-resources-native/src/tsconfig.json
@@ -4,8 +4,8 @@
"outDir": "dist",
"target": "es2017",
"lib": ["es2017", "DOM"],
- "types": ["mendix-client", "big.js", "react-native"],
- "moduleResolution": "node",
+ "types": ["mendix-client", "big.js"],
+ "moduleResolution": "bundler",
"sourceMap": false,
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
diff --git a/packages/jsActions/nanoflow-actions-native/CHANGELOG.md b/packages/jsActions/nanoflow-actions-native/CHANGELOG.md
index 083405075..e8b72989e 100644
--- a/packages/jsActions/nanoflow-actions-native/CHANGELOG.md
+++ b/packages/jsActions/nanoflow-actions-native/CHANGELOG.md
@@ -19,6 +19,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Migrated the geolocation actions from `@react-native-community/geolocation` to `react-native-nitro-geolocation`.
+### Changed
+
+- Updated react-native from version v0.84.1 to v0.88.0.
+- Updated react-native-nitro-modules from version v0.36.1 to v0.36.2.
+
## [7.2.0] Nanoflow Commons - 2026-7-3
- Close offline database connection before navigating between pages with OpenURL nanoflow action.
diff --git a/packages/jsActions/nanoflow-actions-native/package.json b/packages/jsActions/nanoflow-actions-native/package.json
index c5972fb75..e6288d63d 100644
--- a/packages/jsActions/nanoflow-actions-native/package.json
+++ b/packages/jsActions/nanoflow-actions-native/package.json
@@ -1,7 +1,7 @@
{
"name": "nanoflow-actions-native",
"moduleName": "Nanoflow Commons",
- "version": "7.3.0",
+ "version": "8.0.0",
"license": "Apache-2.0",
"copyright": "© Mendix Technology BV 2022. All rights reserved.",
"repository": {
@@ -30,7 +30,7 @@
"js-base64": "~3.7.2",
"mendix-native": "https://github.com/mendix/mendix-native/releases/download/v0.6.0/mendix-native-v0.6.0.tgz",
"react-native-nitro-geolocation": "1.4.3",
- "react-native-nitro-modules": "0.36.1",
+ "react-native-nitro-modules": "0.36.2",
"react-native-permissions": "5.5.1",
"react-native-geocoder": "0.5.0"
},
diff --git a/packages/jsActions/nanoflow-actions-native/src/tsconfig.json b/packages/jsActions/nanoflow-actions-native/src/tsconfig.json
index c58a8b530..d2d3fe415 100644
--- a/packages/jsActions/nanoflow-actions-native/src/tsconfig.json
+++ b/packages/jsActions/nanoflow-actions-native/src/tsconfig.json
@@ -4,8 +4,8 @@
"outDir": "dist",
"target": "es2017",
"lib": ["es2017", "DOM"],
- "types": ["mendix-client", "big.js", "react-native"],
- "moduleResolution": "node",
+ "types": ["mendix-client", "big.js"],
+ "moduleResolution": "bundler",
"sourceMap": false,
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
diff --git a/packages/modules/atlas-content-native/tsconfig.json b/packages/modules/atlas-content-native/tsconfig.json
index d68ab5dfb..462c45c21 100644
--- a/packages/modules/atlas-content-native/tsconfig.json
+++ b/packages/modules/atlas-content-native/tsconfig.json
@@ -2,6 +2,7 @@
"extends": "@mendix/pluggable-widgets-tools/configs/tsconfig.base",
"compilerOptions": {
"esModuleInterop": true,
- "module": "CommonJS"
+ "module": "CommonJS",
+ "moduleResolution": "node"
}
}
diff --git a/packages/pluggableWidgets/accordion-native/CHANGELOG.md b/packages/pluggableWidgets/accordion-native/CHANGELOG.md
index c9f3d6395..26dbed476 100644
--- a/packages/pluggableWidgets/accordion-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/accordion-native/CHANGELOG.md
@@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
## [Unreleased]
+### Changed
+
+- Updated react-native from version v0.84.1 to v0.88.0.
+
## [2.3.0] - 2024-12-3
### Changed
diff --git a/packages/pluggableWidgets/accordion-native/package.json b/packages/pluggableWidgets/accordion-native/package.json
index d89485e63..3d2555f6d 100644
--- a/packages/pluggableWidgets/accordion-native/package.json
+++ b/packages/pluggableWidgets/accordion-native/package.json
@@ -1,7 +1,7 @@
{
"name": "accordion-native",
"widgetName": "Accordion",
- "version": "2.4.0",
+ "version": "2.5.0",
"license": "Apache-2.0",
"repository": {
"type": "git",
diff --git a/packages/pluggableWidgets/accordion-native/src/components/AccordionGroup.tsx b/packages/pluggableWidgets/accordion-native/src/components/AccordionGroup.tsx
index 74b95ad3e..8c47b1252 100644
--- a/packages/pluggableWidgets/accordion-native/src/components/AccordionGroup.tsx
+++ b/packages/pluggableWidgets/accordion-native/src/components/AccordionGroup.tsx
@@ -36,7 +36,7 @@ export function AccordionGroup({
onPressGroupHeader(group, index) : null}
+ onPress={collapsible ? () => onPressGroupHeader(group, index) : undefined}
>
{group.headerRenderMode === "text" ? (
diff --git a/packages/pluggableWidgets/accordion-native/src/package.xml b/packages/pluggableWidgets/accordion-native/src/package.xml
index 1a9adc401..0b38cfcf5 100644
--- a/packages/pluggableWidgets/accordion-native/src/package.xml
+++ b/packages/pluggableWidgets/accordion-native/src/package.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/packages/pluggableWidgets/activity-indicator-native/CHANGELOG.md b/packages/pluggableWidgets/activity-indicator-native/CHANGELOG.md
index df4c45e64..1ef0c4482 100644
--- a/packages/pluggableWidgets/activity-indicator-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/activity-indicator-native/CHANGELOG.md
@@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
## [Unreleased]
+### Changed
+
+- Updated react-native from version v0.84.1 to v0.88.0.
+
## [2.3.0] - 2024-12-3
### Changed
diff --git a/packages/pluggableWidgets/activity-indicator-native/package.json b/packages/pluggableWidgets/activity-indicator-native/package.json
index 87acc6f5e..5e479461d 100644
--- a/packages/pluggableWidgets/activity-indicator-native/package.json
+++ b/packages/pluggableWidgets/activity-indicator-native/package.json
@@ -1,7 +1,7 @@
{
"name": "activity-indicator-native",
"widgetName": "ActivityIndicator",
- "version": "2.4.0",
+ "version": "2.5.0",
"license": "Apache-2.0",
"repository": {
"type": "git",
diff --git a/packages/pluggableWidgets/activity-indicator-native/src/package.xml b/packages/pluggableWidgets/activity-indicator-native/src/package.xml
index c1535f805..90b892ff0 100644
--- a/packages/pluggableWidgets/activity-indicator-native/src/package.xml
+++ b/packages/pluggableWidgets/activity-indicator-native/src/package.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/packages/pluggableWidgets/animation-native/CHANGELOG.md b/packages/pluggableWidgets/animation-native/CHANGELOG.md
index c7f8c0d38..8a7bc7a71 100644
--- a/packages/pluggableWidgets/animation-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/animation-native/CHANGELOG.md
@@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
### Changed
- We updated react-native-animatable to 1.4.0.
+- Updated react-native from version v0.84.1 to v0.88.0.
## [3.2.0] - 2024-12-3
diff --git a/packages/pluggableWidgets/animation-native/package.json b/packages/pluggableWidgets/animation-native/package.json
index 21361e62e..17b496485 100644
--- a/packages/pluggableWidgets/animation-native/package.json
+++ b/packages/pluggableWidgets/animation-native/package.json
@@ -1,7 +1,7 @@
{
"name": "animation-native",
"widgetName": "Animation",
- "version": "3.4.0",
+ "version": "3.5.0",
"description": "Container for animations",
"copyright": "© Mendix Technology BV 2022. All rights reserved.",
"author": "Widget Team",
diff --git a/packages/pluggableWidgets/animation-native/src/__tests__/Animation.spec.tsx b/packages/pluggableWidgets/animation-native/src/__tests__/Animation.spec.tsx
index 8c387ad93..2d0f62256 100644
--- a/packages/pluggableWidgets/animation-native/src/__tests__/Animation.spec.tsx
+++ b/packages/pluggableWidgets/animation-native/src/__tests__/Animation.spec.tsx
@@ -2,10 +2,12 @@ import { Text } from "react-native";
import { render } from "@testing-library/react-native";
import { Animation, Props } from "../Animation";
-jest.mock("react-native/Libraries/Utilities/Platform", () => ({
- OS: "ios",
- select: jest.fn(dict => dict.ios)
-}));
+jest.mock("react-native/Libraries/Utilities/Platform", () => {
+ const Platform = jest.requireActual("react-native/Libraries/Utilities/Platform");
+ Platform.OS = "ios";
+ Platform.default = { ...Platform.default, OS: "ios", select: jest.fn(dict => dict.ios) };
+ return Platform;
+});
const textContent = Hello;
diff --git a/packages/pluggableWidgets/animation-native/src/package.xml b/packages/pluggableWidgets/animation-native/src/package.xml
index e7b664ea7..feb203589 100644
--- a/packages/pluggableWidgets/animation-native/src/package.xml
+++ b/packages/pluggableWidgets/animation-native/src/package.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/packages/pluggableWidgets/app-events-native/CHANGELOG.md b/packages/pluggableWidgets/app-events-native/CHANGELOG.md
index 6dd6d89c9..adfcfa689 100644
--- a/packages/pluggableWidgets/app-events-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/app-events-native/CHANGELOG.md
@@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
## [Unreleased]
+### Changed
+
+- Updated react-native from version v0.84.1 to v0.88.0.
+
## [5.1.0] - 2026-5-15
### Changed
diff --git a/packages/pluggableWidgets/app-events-native/package.json b/packages/pluggableWidgets/app-events-native/package.json
index 0dd3bcba4..b997f4080 100644
--- a/packages/pluggableWidgets/app-events-native/package.json
+++ b/packages/pluggableWidgets/app-events-native/package.json
@@ -1,7 +1,7 @@
{
"name": "app-events-native",
"widgetName": "AppEvents",
- "version": "5.1.0",
+ "version": "5.2.0",
"license": "Apache-2.0",
"repository": {
"type": "git",
diff --git a/packages/pluggableWidgets/app-events-native/src/package.xml b/packages/pluggableWidgets/app-events-native/src/package.xml
index d278d8ab9..86c102258 100644
--- a/packages/pluggableWidgets/app-events-native/src/package.xml
+++ b/packages/pluggableWidgets/app-events-native/src/package.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/packages/pluggableWidgets/background-gradient-native/CHANGELOG.md b/packages/pluggableWidgets/background-gradient-native/CHANGELOG.md
index 2a4517c0f..be2ef5388 100644
--- a/packages/pluggableWidgets/background-gradient-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/background-gradient-native/CHANGELOG.md
@@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
### Changed
- We removed the library of `react-native-linear-gradient` in favor of a react-native View with linear-gradient type background.
+- Updated react-native from version v0.84.1 to v0.88.0.
## [2.2.1] - 2026-1-19
diff --git a/packages/pluggableWidgets/background-gradient-native/package.json b/packages/pluggableWidgets/background-gradient-native/package.json
index 709b18b12..bda558d3c 100644
--- a/packages/pluggableWidgets/background-gradient-native/package.json
+++ b/packages/pluggableWidgets/background-gradient-native/package.json
@@ -1,7 +1,7 @@
{
"name": "background-gradient-native",
"widgetName": "BackgroundGradient",
- "version": "2.3.1",
+ "version": "2.4.0",
"repository": {
"type": "git",
"url": "https://github.com/mendix/native-widgets.git"
diff --git a/packages/pluggableWidgets/background-gradient-native/src/package.xml b/packages/pluggableWidgets/background-gradient-native/src/package.xml
index 8303c6d83..c81512f77 100644
--- a/packages/pluggableWidgets/background-gradient-native/src/package.xml
+++ b/packages/pluggableWidgets/background-gradient-native/src/package.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/packages/pluggableWidgets/background-image-native/CHANGELOG.md b/packages/pluggableWidgets/background-image-native/CHANGELOG.md
index 7844443e2..bf4d2ef6a 100644
--- a/packages/pluggableWidgets/background-image-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/background-image-native/CHANGELOG.md
@@ -8,6 +8,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Fixed background image widget not visible when there is no content inside it.
+### Changed
+
+- Updated react-native from version v0.84.1 to v0.88.0.
+
## [2.2.0] - 2024-12-3
### Changed
diff --git a/packages/pluggableWidgets/background-image-native/package.json b/packages/pluggableWidgets/background-image-native/package.json
index 1ba872cf9..ef68874b9 100644
--- a/packages/pluggableWidgets/background-image-native/package.json
+++ b/packages/pluggableWidgets/background-image-native/package.json
@@ -1,7 +1,7 @@
{
"name": "background-image-native",
"widgetName": "BackgroundImage",
- "version": "2.3.1",
+ "version": "2.4.0",
"license": "Apache-2.0",
"repository": {
"type": "git",
diff --git a/packages/pluggableWidgets/background-image-native/src/package.xml b/packages/pluggableWidgets/background-image-native/src/package.xml
index a8777e9fb..5df529585 100644
--- a/packages/pluggableWidgets/background-image-native/src/package.xml
+++ b/packages/pluggableWidgets/background-image-native/src/package.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/packages/pluggableWidgets/badge-native/CHANGELOG.md b/packages/pluggableWidgets/badge-native/CHANGELOG.md
index 513e42633..a9dfb1a38 100644
--- a/packages/pluggableWidgets/badge-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/badge-native/CHANGELOG.md
@@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
## [Unreleased]
+### Changed
+
+- Updated react-native from version v0.84.1 to v0.88.0.
+
## [2.3.0] - 2024-12-3
### Changed
diff --git a/packages/pluggableWidgets/badge-native/package.json b/packages/pluggableWidgets/badge-native/package.json
index a57fe6c24..871d122ca 100644
--- a/packages/pluggableWidgets/badge-native/package.json
+++ b/packages/pluggableWidgets/badge-native/package.json
@@ -1,7 +1,7 @@
{
"name": "badge-native",
"widgetName": "Badge",
- "version": "2.4.0",
+ "version": "2.5.0",
"license": "Apache-2.0",
"repository": {
"type": "git",
diff --git a/packages/pluggableWidgets/badge-native/src/__tests__/Badge.spec.tsx b/packages/pluggableWidgets/badge-native/src/__tests__/Badge.spec.tsx
index ee52da8bc..bb06f295d 100644
--- a/packages/pluggableWidgets/badge-native/src/__tests__/Badge.spec.tsx
+++ b/packages/pluggableWidgets/badge-native/src/__tests__/Badge.spec.tsx
@@ -67,7 +67,7 @@ describe("Badge", () => {
describe("Android", () => {
beforeEach(() => {
Platform.OS = "android";
- Platform.select = jest.fn(dict => dict.android!);
+ jest.spyOn(Platform, "select").mockImplementation(spec => spec.android!);
});
it("renders touchables", () => {
diff --git a/packages/pluggableWidgets/badge-native/src/package.xml b/packages/pluggableWidgets/badge-native/src/package.xml
index 2cf62a00a..baff24a8c 100644
--- a/packages/pluggableWidgets/badge-native/src/package.xml
+++ b/packages/pluggableWidgets/badge-native/src/package.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/packages/pluggableWidgets/bar-chart-native/CHANGELOG.md b/packages/pluggableWidgets/bar-chart-native/CHANGELOG.md
index 182041407..4af3ddb0e 100644
--- a/packages/pluggableWidgets/bar-chart-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/bar-chart-native/CHANGELOG.md
@@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
### Changed
- We updated victory-native to 36.9.2.
+- Updated react-native from version v0.84.1 to v0.88.0.
## [3.2.1] - 2026-6-10
diff --git a/packages/pluggableWidgets/bar-chart-native/package.json b/packages/pluggableWidgets/bar-chart-native/package.json
index 7c9897378..035d60678 100644
--- a/packages/pluggableWidgets/bar-chart-native/package.json
+++ b/packages/pluggableWidgets/bar-chart-native/package.json
@@ -1,7 +1,7 @@
{
"name": "bar-chart-native",
"widgetName": "BarChart",
- "version": "3.3.0",
+ "version": "3.4.0",
"license": "Apache-2.0",
"copyright": "© Mendix Technology BV 2022. All rights reserved.",
"repository": {
diff --git a/packages/pluggableWidgets/bar-chart-native/src/package.xml b/packages/pluggableWidgets/bar-chart-native/src/package.xml
index 5a1b0ee3c..7f4d29927 100644
--- a/packages/pluggableWidgets/bar-chart-native/src/package.xml
+++ b/packages/pluggableWidgets/bar-chart-native/src/package.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/packages/pluggableWidgets/barcode-scanner-native/CHANGELOG.md b/packages/pluggableWidgets/barcode-scanner-native/CHANGELOG.md
index 1ec105dc9..405a7483e 100644
--- a/packages/pluggableWidgets/barcode-scanner-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/barcode-scanner-native/CHANGELOG.md
@@ -9,6 +9,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- We added support for QR of available remaining types including pdf417 in barcode scanner functinality.
- We fixed the barcode mask not visible issue and selection logic of QR code.
+### Changed
+
+- Updated react-native from version v0.84.1 to v0.88.0.
+
## [4.2.2] - 2025-12-23
- We expanded the barcode-scanner configuration in Vision Camera to support all available `CodeType` formats, including QR, Aztec, Data Matrix, PDF-417, EAN, UPC, GS1 DataBar, ITF, and Code barcodes.
diff --git a/packages/pluggableWidgets/barcode-scanner-native/package.json b/packages/pluggableWidgets/barcode-scanner-native/package.json
index 20b5cbf1a..f50ad359a 100644
--- a/packages/pluggableWidgets/barcode-scanner-native/package.json
+++ b/packages/pluggableWidgets/barcode-scanner-native/package.json
@@ -1,7 +1,7 @@
{
"name": "barcode-scanner-native",
"widgetName": "BarcodeScanner",
- "version": "4.5.0",
+ "version": "4.6.0",
"license": "Apache-2.0",
"repository": {
"type": "git",
diff --git a/packages/pluggableWidgets/barcode-scanner-native/src/package.xml b/packages/pluggableWidgets/barcode-scanner-native/src/package.xml
index aa5591818..76015e608 100644
--- a/packages/pluggableWidgets/barcode-scanner-native/src/package.xml
+++ b/packages/pluggableWidgets/barcode-scanner-native/src/package.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/packages/pluggableWidgets/bottom-sheet-native/CHANGELOG.md b/packages/pluggableWidgets/bottom-sheet-native/CHANGELOG.md
index e3703ea28..0338288c5 100644
--- a/packages/pluggableWidgets/bottom-sheet-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/bottom-sheet-native/CHANGELOG.md
@@ -17,6 +17,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Fixed iOS orientation change when opening the bottom sheet modal on devices in landscape mode.
- Fixed the app becoming unresponsive to touches after a modal bottom sheet (basic or custom rendering) was closed while it was still opening, e.g. when opening and closing it quickly. A sheet whose trigger attribute is set to false while it is opening now also closes once it has opened.
+### Changed
+
+- Updated react-native from version v0.84.1 to v0.88.0.
+- Updated react-native-gesture-handler from version v2.31.2 to v2.33.0.
+- Updated react-native-reanimated from version v4.3.1 to v4.7.1.
+- Updated react-native-worklets from version v0.8.3 to v0.13.0.
+
## [5.3.2] - 2026-8-4
### Fixed
diff --git a/packages/pluggableWidgets/bottom-sheet-native/package.json b/packages/pluggableWidgets/bottom-sheet-native/package.json
index 932cef443..0930768d5 100644
--- a/packages/pluggableWidgets/bottom-sheet-native/package.json
+++ b/packages/pluggableWidgets/bottom-sheet-native/package.json
@@ -1,7 +1,7 @@
{
"name": "bottom-sheet-native",
"widgetName": "BottomSheet",
- "version": "5.3.4",
+ "version": "5.4.0",
"license": "Apache-2.0",
"repository": {
"type": "git",
@@ -24,9 +24,9 @@
"@mendix/piw-utils-internal": "*",
"@shopify/flash-list": "2.3.1",
"react-native-device-info": "15.0.2",
- "react-native-gesture-handler": "2.31.2",
- "react-native-reanimated": "4.3.1",
- "react-native-worklets": "0.8.3"
+ "react-native-gesture-handler": "2.33.0",
+ "react-native-reanimated": "4.7.1",
+ "react-native-worklets": "0.13.0"
},
"devDependencies": {
"@mendix/pluggable-widgets-tools": "*",
diff --git a/packages/pluggableWidgets/bottom-sheet-native/src/BottomSheet.tsx b/packages/pluggableWidgets/bottom-sheet-native/src/BottomSheet.tsx
index 7e616cdf5..448c0b93e 100644
--- a/packages/pluggableWidgets/bottom-sheet-native/src/BottomSheet.tsx
+++ b/packages/pluggableWidgets/bottom-sheet-native/src/BottomSheet.tsx
@@ -4,11 +4,10 @@ import { CustomModalSheet } from "./components/CustomModalSheet";
import { ExpandingDrawer } from "./components/ExpandingDrawer";
import { NativeBottomSheet } from "./components/NativeBottomSheet";
import { BottomSheetProps } from "../typings/BottomSheetProps";
-import { StyleSheet } from "react-native";
import { executeAction } from "@mendix/piw-utils-internal";
export function BottomSheet(props: BottomSheetProps): ReactElement {
- const styles = StyleSheet.flatten(props.style);
+ const styles: BottomSheetStyle = Object.assign({}, ...props.style);
if (props.type === "modal" && props.modalRendering === "custom") {
return (
diff --git a/packages/pluggableWidgets/bottom-sheet-native/src/__tests__/__snapshots__/BottomSheet.spec.tsx.snap b/packages/pluggableWidgets/bottom-sheet-native/src/__tests__/__snapshots__/BottomSheet.spec.tsx.snap
index 250444850..89dd37d0b 100644
--- a/packages/pluggableWidgets/bottom-sheet-native/src/__tests__/__snapshots__/BottomSheet.spec.tsx.snap
+++ b/packages/pluggableWidgets/bottom-sheet-native/src/__tests__/__snapshots__/BottomSheet.spec.tsx.snap
@@ -158,7 +158,7 @@ exports[`Bottom sheet renders a expanding fullscreen with custom styles 1`] = `
`;
-exports[`Bottom sheet renders a native bottom action sheet for ios (Basic modal) 1`] = `null`;
+exports[`Bottom sheet renders a native bottom action sheet for ios (Basic modal) 1`] = ``;
exports[`Bottom sheet renders basic modal with supportedOrientations when open 1`] = `
-
+
diff --git a/packages/pluggableWidgets/carousel-native/CHANGELOG.md b/packages/pluggableWidgets/carousel-native/CHANGELOG.md
index 978724650..7f7431fad 100644
--- a/packages/pluggableWidgets/carousel-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/carousel-native/CHANGELOG.md
@@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
### Changed
- We replaced react-native-snap-carousel with a built-in carousel component, removing the dependency on it and on deprecated-react-native-prop-types.
+- Updated react-native from version v0.84.1 to v0.88.0.
### Fixed
diff --git a/packages/pluggableWidgets/color-picker-native/CHANGELOG.md b/packages/pluggableWidgets/color-picker-native/CHANGELOG.md
index 84f5fb6b2..4ac2a6adf 100644
--- a/packages/pluggableWidgets/color-picker-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/color-picker-native/CHANGELOG.md
@@ -8,6 +8,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
### Changed
+- Updated react-native from version v0.84.1 to v0.88.0.
- We updated tinycolor2 to 1.6.0.
- We replaced react-native-slider and react-native-color with built-in components, and removed deprecated-react-native-prop-types.
diff --git a/packages/pluggableWidgets/column-chart-native/CHANGELOG.md b/packages/pluggableWidgets/column-chart-native/CHANGELOG.md
index cfbf0cf81..af62c7a45 100644
--- a/packages/pluggableWidgets/column-chart-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/column-chart-native/CHANGELOG.md
@@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
### Changed
- We updated victory-native to 36.9.2.
+- Updated react-native from version v0.84.1 to v0.88.0.
## [2.2.1] - 2026-6-10
diff --git a/packages/pluggableWidgets/column-chart-native/package.json b/packages/pluggableWidgets/column-chart-native/package.json
index a51c59589..53b3ebf32 100644
--- a/packages/pluggableWidgets/column-chart-native/package.json
+++ b/packages/pluggableWidgets/column-chart-native/package.json
@@ -1,7 +1,7 @@
{
"name": "column-chart-native",
"widgetName": "ColumnChart",
- "version": "2.3.0",
+ "version": "2.4.0",
"license": "Apache-2.0",
"copyright": "© Mendix Technology BV 2022. All rights reserved.",
"repository": {
diff --git a/packages/pluggableWidgets/column-chart-native/src/package.xml b/packages/pluggableWidgets/column-chart-native/src/package.xml
index 78edd8853..bbaf1f273 100644
--- a/packages/pluggableWidgets/column-chart-native/src/package.xml
+++ b/packages/pluggableWidgets/column-chart-native/src/package.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/packages/pluggableWidgets/feedback-native/CHANGELOG.md b/packages/pluggableWidgets/feedback-native/CHANGELOG.md
index 711a27479..b6697c31c 100644
--- a/packages/pluggableWidgets/feedback-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/feedback-native/CHANGELOG.md
@@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
### Changed
- We pinned querystringify to 2.2.0.
+- Updated react-native from version v0.84.1 to v0.88.0.
## [3.6.1] - 2026-6-10
diff --git a/packages/pluggableWidgets/feedback-native/package.json b/packages/pluggableWidgets/feedback-native/package.json
index 7a8edd41b..dca356435 100644
--- a/packages/pluggableWidgets/feedback-native/package.json
+++ b/packages/pluggableWidgets/feedback-native/package.json
@@ -1,7 +1,7 @@
{
"name": "feedback-native",
"widgetName": "Feedback",
- "version": "3.6.2",
+ "version": "3.7.0",
"license": "Apache-2.0",
"repository": {
"type": "git",
diff --git a/packages/pluggableWidgets/feedback-native/src/package.xml b/packages/pluggableWidgets/feedback-native/src/package.xml
index 2f29ad5ca..2c46a1149 100644
--- a/packages/pluggableWidgets/feedback-native/src/package.xml
+++ b/packages/pluggableWidgets/feedback-native/src/package.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/packages/pluggableWidgets/floating-action-button-native/CHANGELOG.md b/packages/pluggableWidgets/floating-action-button-native/CHANGELOG.md
index 090c849d4..8c56759bb 100644
--- a/packages/pluggableWidgets/floating-action-button-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/floating-action-button-native/CHANGELOG.md
@@ -10,6 +10,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- We fixed an issue of secondary button's caption not displayed if its horizontal position is center.
- We refactored code and migrated to functional component.
+### Changed
+
+- Updated react-native from version v0.84.1 to v0.88.0.
+
## [4.2.1] - 2026-6-10
### Changed
diff --git a/packages/pluggableWidgets/floating-action-button-native/package.json b/packages/pluggableWidgets/floating-action-button-native/package.json
index 35f53200f..71887874a 100644
--- a/packages/pluggableWidgets/floating-action-button-native/package.json
+++ b/packages/pluggableWidgets/floating-action-button-native/package.json
@@ -1,7 +1,7 @@
{
"name": "floating-action-button-native",
"widgetName": "FloatingActionButton",
- "version": "4.3.0",
+ "version": "4.4.0",
"license": "Apache-2.0",
"repository": {
"type": "git",
diff --git a/packages/pluggableWidgets/floating-action-button-native/src/FloatingActionButton.tsx b/packages/pluggableWidgets/floating-action-button-native/src/FloatingActionButton.tsx
index e9d80d676..d8277a971 100644
--- a/packages/pluggableWidgets/floating-action-button-native/src/FloatingActionButton.tsx
+++ b/packages/pluggableWidgets/floating-action-button-native/src/FloatingActionButton.tsx
@@ -50,37 +50,29 @@ function getPositionStyle(
verticalPosition: VerticalPositionEnum,
horizontalPosition: HorizontalPositionEnum
): ViewStyle {
- const positionStyle: ViewStyle = {
- position: "absolute",
- left: 0,
- right: 0,
- zIndex: 999
- };
-
- switch (verticalPosition) {
- case "bottom":
- positionStyle.bottom = 0;
- break;
- case "top":
- default:
- positionStyle.top = 0;
- break;
- }
+ let alignItems: ViewStyle["alignItems"];
switch (horizontalPosition) {
case "left":
- positionStyle.alignItems = "flex-start";
+ alignItems = "flex-start";
break;
case "center":
- positionStyle.alignItems = "center";
+ alignItems = "center";
break;
case "right":
default:
- positionStyle.alignItems = "flex-end";
+ alignItems = "flex-end";
break;
}
- return positionStyle;
+ return {
+ position: "absolute",
+ left: 0,
+ right: 0,
+ zIndex: 999,
+ ...(verticalPosition === "bottom" ? { bottom: 0 } : { top: 0 }),
+ alignItems
+ };
}
function AnimatedMainIcon(props: AnimatedMainIconProps): JSX.Element {
diff --git a/packages/pluggableWidgets/floating-action-button-native/src/package.xml b/packages/pluggableWidgets/floating-action-button-native/src/package.xml
index 76a2254ae..9ba914ebe 100644
--- a/packages/pluggableWidgets/floating-action-button-native/src/package.xml
+++ b/packages/pluggableWidgets/floating-action-button-native/src/package.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/packages/pluggableWidgets/gallery-native/CHANGELOG.md b/packages/pluggableWidgets/gallery-native/CHANGELOG.md
index 8485b2647..45c3fe593 100644
--- a/packages/pluggableWidgets/gallery-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/gallery-native/CHANGELOG.md
@@ -15,6 +15,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Added horizontal item sizing options to fit items to their content or divide the Gallery width into configurable columns.
+### Changed
+
+- Updated react-native from version v0.84.1 to v0.88.0.
+
## [2.2.1] - 2026-6-10
### Changed
diff --git a/packages/pluggableWidgets/gallery-native/package.json b/packages/pluggableWidgets/gallery-native/package.json
index 282da9eb2..ab51f7d50 100644
--- a/packages/pluggableWidgets/gallery-native/package.json
+++ b/packages/pluggableWidgets/gallery-native/package.json
@@ -1,7 +1,7 @@
{
"name": "gallery-native",
"widgetName": "Gallery",
- "version": "2.3.0",
+ "version": "2.4.0",
"description": "A flexible gallery widget that renders columns, rows and layouts.",
"copyright": "© Mendix Technology BV 2022. All rights reserved.",
"license": "Apache-2.0",
diff --git a/packages/pluggableWidgets/gallery-native/src/components/__tests__/__snapshots__/Gallery.spec.tsx.snap b/packages/pluggableWidgets/gallery-native/src/components/__tests__/__snapshots__/Gallery.spec.tsx.snap
index 7fc711bf8..1137fc52f 100644
--- a/packages/pluggableWidgets/gallery-native/src/components/__tests__/__snapshots__/Gallery.spec.tsx.snap
+++ b/packages/pluggableWidgets/gallery-native/src/components/__tests__/__snapshots__/Gallery.spec.tsx.snap
@@ -422,6 +422,7 @@ exports[`Gallery rendering rendering with load more button renders correctly 1`]
focusable={true}
nativeBackgroundAndroid={
{
+ "alpha": null,
"borderless": false,
"color": 855638016,
"rippleRadius": undefined,
@@ -669,6 +670,7 @@ exports[`Gallery rendering rendering with load more button renders correctly wit
focusable={true}
nativeBackgroundAndroid={
{
+ "alpha": null,
"borderless": false,
"color": 855638016,
"rippleRadius": undefined,
diff --git a/packages/pluggableWidgets/gallery-native/src/package.xml b/packages/pluggableWidgets/gallery-native/src/package.xml
index 410357eca..a8f3839a6 100644
--- a/packages/pluggableWidgets/gallery-native/src/package.xml
+++ b/packages/pluggableWidgets/gallery-native/src/package.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/packages/pluggableWidgets/gallery-text-filter-native/CHANGELOG.md b/packages/pluggableWidgets/gallery-text-filter-native/CHANGELOG.md
index 4669b9570..4cb755042 100644
--- a/packages/pluggableWidgets/gallery-text-filter-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/gallery-text-filter-native/CHANGELOG.md
@@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
## [Unreleased]
+### Changed
+
+- Updated react-native from version v0.84.1 to v0.88.0.
+
## [2.1.1] - 2026-6-10
### Changed
diff --git a/packages/pluggableWidgets/gallery-text-filter-native/package.json b/packages/pluggableWidgets/gallery-text-filter-native/package.json
index cd79d1d6b..b87e699df 100644
--- a/packages/pluggableWidgets/gallery-text-filter-native/package.json
+++ b/packages/pluggableWidgets/gallery-text-filter-native/package.json
@@ -1,7 +1,7 @@
{
"name": "gallery-text-filter-native",
"widgetName": "GalleryTextFilter",
- "version": "2.1.1",
+ "version": "2.2.0",
"license": "Apache-2.0",
"copyright": "© Mendix Technology BV 2022. All rights reserved.",
"repository": {
diff --git a/packages/pluggableWidgets/gallery-text-filter-native/src/components/FilterComponent.tsx b/packages/pluggableWidgets/gallery-text-filter-native/src/components/FilterComponent.tsx
index bfa5acb1e..bc5a8d52e 100644
--- a/packages/pluggableWidgets/gallery-text-filter-native/src/components/FilterComponent.tsx
+++ b/packages/pluggableWidgets/gallery-text-filter-native/src/components/FilterComponent.tsx
@@ -1,5 +1,5 @@
import { ReactElement, useRef, useState, useEffect, useMemo } from "react";
-import { View, TextInput, TouchableOpacity, ViewStyle } from "react-native";
+import { View, TextInput, TextInputInstance, TouchableOpacity, ViewStyle } from "react-native";
import Svg, { Path } from "react-native-svg";
import { debounce } from "@mendix/piw-utils-internal";
import { extractStyles } from "@mendix/pluggable-widgets-tools";
@@ -29,7 +29,7 @@ export default function FilterComponent(props: FilterComponentProps): ReactEleme
props.styles?.textInputContainer || {}
);
- const inputRef = useRef(null);
+ const inputRef = useRef(null);
const [textInputProps, textInput] = extractStyles(props.styles?.textInput, textInputPropsKeys);
const xIconSVG = (
diff --git a/packages/pluggableWidgets/gallery-text-filter-native/src/package.xml b/packages/pluggableWidgets/gallery-text-filter-native/src/package.xml
index 0513ed915..75aca0db2 100644
--- a/packages/pluggableWidgets/gallery-text-filter-native/src/package.xml
+++ b/packages/pluggableWidgets/gallery-text-filter-native/src/package.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/packages/pluggableWidgets/image-native/CHANGELOG.md b/packages/pluggableWidgets/image-native/CHANGELOG.md
index c58e080fc..400d8e09e 100644
--- a/packages/pluggableWidgets/image-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/image-native/CHANGELOG.md
@@ -10,6 +10,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- We fixed an issue that caused images from entities to not render on Android in Online Synchronization mode
+### Changed
+
+- Updated react-native from version v0.84.1 to v0.88.0.
+- Updated @react-native-vector-icons/common from version v12.4.2 to v13.0.3.
+- Updated @react-native-vector-icons/get-image from version v12.3.0 to v13.0.1.
+
## [3.1.1] - 2026-6-10
### Changed
diff --git a/packages/pluggableWidgets/image-native/package.json b/packages/pluggableWidgets/image-native/package.json
index 4694db80f..3d41162cc 100644
--- a/packages/pluggableWidgets/image-native/package.json
+++ b/packages/pluggableWidgets/image-native/package.json
@@ -1,7 +1,7 @@
{
"name": "image-native",
"widgetName": "Image",
- "version": "3.1.2",
+ "version": "3.2.0",
"description": "Display an image and enlarge it on click",
"copyright": "© Mendix Technology BV 2022. All rights reserved.",
"license": "Apache-2.0",
@@ -25,8 +25,8 @@
"@d11/react-native-fast-image": "8.13.0",
"@mendix/piw-native-utils-internal": "*",
"@mendix/piw-utils-internal": "*",
- "@react-native-vector-icons/common": "12.4.2",
- "@react-native-vector-icons/get-image": "12.3.0",
+ "@react-native-vector-icons/common": "13.0.3",
+ "@react-native-vector-icons/get-image": "13.0.1",
"react-native-svg": "15.15.4"
},
"devDependencies": {
diff --git a/packages/pluggableWidgets/image-native/src/components/ImageIconSVG.tsx b/packages/pluggableWidgets/image-native/src/components/ImageIconSVG.tsx
index 3deb5eb09..e173957e2 100644
--- a/packages/pluggableWidgets/image-native/src/components/ImageIconSVG.tsx
+++ b/packages/pluggableWidgets/image-native/src/components/ImageIconSVG.tsx
@@ -1,7 +1,7 @@
import { FunctionComponent, Fragment, useCallback } from "react";
-import { ImageURISource, Platform, View } from "react-native";
+import { ImageStyle, ImageURISource, Platform, StyleProp, View } from "react-native";
import { SvgUri, SvgXml } from "react-native-svg";
-import FastImageComponent, { Source } from "@d11/react-native-fast-image";
+import FastImageComponent, { FastImageProps, Source } from "@d11/react-native-fast-image";
import { extractStyles } from "@mendix/pluggable-widgets-tools";
import { CustomImageProps, GlyphIcon } from "../utils/imageUtils";
import { GlyphIcon as GlyphIconComponent, type GlyphIconName } from "./fonts/font";
@@ -70,6 +70,11 @@ export const ImageIconSVG: FunctionComponent = props => {
// fall back to it for remote urls on Android.
const uri = typeof image === "object" ? (image as ImageURISource)?.uri : undefined;
const useFallback = Platform.OS === "android" && typeof uri === "string" && /^https?:\/\//i.test(uri);
+ const fastImageStyle: StyleProp = [
+ initialDimensions?.aspectRatio ? { aspectRatio: +initialDimensions.aspectRatio?.toFixed(2) } : {},
+ width && height ? { width, height } : {},
+ imageStyles
+ ];
return (
= props => {
source={image as Source | number}
resizeMode={resizeMode || "contain"}
fallback={useFallback}
- style={[
- initialDimensions?.aspectRatio ? { aspectRatio: +initialDimensions.aspectRatio?.toFixed(2) } : {},
- width && height ? { width, height } : {},
- imageStyles
- ]}
+ // FastImage's ImageStyle extends RN style types that RN 0.88 no longer exports, so it lacks most props.
+ style={fastImageStyle as FastImageProps["style"]}
/>
);
}
diff --git a/packages/pluggableWidgets/image-native/src/components/__tests__/__snapshots__/Image.spec.tsx.snap b/packages/pluggableWidgets/image-native/src/components/__tests__/__snapshots__/Image.spec.tsx.snap
index 8f98e0a94..c0d11b809 100644
--- a/packages/pluggableWidgets/image-native/src/components/__tests__/__snapshots__/Image.spec.tsx.snap
+++ b/packages/pluggableWidgets/image-native/src/components/__tests__/__snapshots__/Image.spec.tsx.snap
@@ -1480,7 +1480,7 @@ exports[`Widget Icon type: icon/glyph renders the structure with an icon and def
"fontStyle": "normal",
"fontWeight": "normal",
},
- {},
+ undefined,
]
}
>
diff --git a/packages/pluggableWidgets/image-native/src/package.xml b/packages/pluggableWidgets/image-native/src/package.xml
index 3b1116e40..563994a63 100644
--- a/packages/pluggableWidgets/image-native/src/package.xml
+++ b/packages/pluggableWidgets/image-native/src/package.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/packages/pluggableWidgets/intro-screen-native/CHANGELOG.md b/packages/pluggableWidgets/intro-screen-native/CHANGELOG.md
index 92d910ebc..0961679af 100644
--- a/packages/pluggableWidgets/intro-screen-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/intro-screen-native/CHANGELOG.md
@@ -9,6 +9,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
### Fixed
- We fixed an issue where the IntroScreen did not show the slide set by the active slide attribute, and where swiping between slides did not work reliably on slower Android devices.
+- We fixed the layout of the intro screen, which broke because react-native v0.88 removed StyleSheet.absoluteFillObject.
+
+### Changed
+
+- Updated react-native from version v0.84.1 to v0.88.0.
## [4.4.1] - 2026-6-10
diff --git a/packages/pluggableWidgets/intro-screen-native/package.json b/packages/pluggableWidgets/intro-screen-native/package.json
index a9ee26879..23901140a 100644
--- a/packages/pluggableWidgets/intro-screen-native/package.json
+++ b/packages/pluggableWidgets/intro-screen-native/package.json
@@ -1,7 +1,7 @@
{
"name": "intro-screen-native",
"widgetName": "IntroScreen",
- "version": "4.5.0",
+ "version": "4.6.0",
"license": "Apache-2.0",
"repository": {
"type": "git",
diff --git a/packages/pluggableWidgets/intro-screen-native/src/SwipeableContainer.tsx b/packages/pluggableWidgets/intro-screen-native/src/SwipeableContainer.tsx
index 5efd62367..f2d3272ba 100644
--- a/packages/pluggableWidgets/intro-screen-native/src/SwipeableContainer.tsx
+++ b/packages/pluggableWidgets/intro-screen-native/src/SwipeableContainer.tsx
@@ -6,9 +6,7 @@ import {
StyleSheet,
Text,
TouchableNativeFeedback,
- TouchableNativeFeedbackProps,
TouchableOpacity,
- TouchableOpacityProps,
View
} from "react-native";
import { ButtonStyle, IntroScreenStyle } from "./ui/Styles";
@@ -44,12 +42,10 @@ interface SwipeableContainerProps {
activeSlide?: EditableValue;
}
-type TouchableProps = TouchableNativeFeedbackProps | TouchableOpacityProps;
-
declare type Option = T | undefined;
const isAndroidRTL = I18nManager.isRTL && Platform.OS === "android";
-const Touchable: React.ComponentType =
+const Touchable: typeof TouchableNativeFeedback | typeof TouchableOpacity =
Platform.OS === "android" ? TouchableNativeFeedback : TouchableOpacity;
// Changing this config after mount is not supported by flash-list, so it is a constant.
diff --git a/packages/pluggableWidgets/intro-screen-native/src/package.xml b/packages/pluggableWidgets/intro-screen-native/src/package.xml
index a19bb9f76..e0e227e8b 100644
--- a/packages/pluggableWidgets/intro-screen-native/src/package.xml
+++ b/packages/pluggableWidgets/intro-screen-native/src/package.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/packages/pluggableWidgets/intro-screen-native/src/ui/Styles.ts b/packages/pluggableWidgets/intro-screen-native/src/ui/Styles.ts
index 4f81457f7..e250fa35e 100644
--- a/packages/pluggableWidgets/intro-screen-native/src/ui/Styles.ts
+++ b/packages/pluggableWidgets/intro-screen-native/src/ui/Styles.ts
@@ -1,6 +1,6 @@
import { Style } from "@mendix/piw-native-utils-internal";
import { I18nManager, Platform, StyleSheet, TextStyle, ViewStyle } from "react-native";
-import absoluteFillObject = StyleSheet.absoluteFillObject;
+import absoluteFill = StyleSheet.absoluteFill;
import DeviceInfo from "react-native-device-info";
const isiPhoneModelWithNotch = (): boolean => {
@@ -81,10 +81,10 @@ export interface IntroScreenStyle extends Style {
export const defaultWelcomeScreenStyle: IntroScreenStyle = {
fullscreenContainer: {
- ...absoluteFillObject
+ ...absoluteFill
},
popupContainer: {
- ...absoluteFillObject,
+ ...absoluteFill,
paddingHorizontal: 50,
paddingVertical: 150,
backgroundColor: "rgba(0, 0, 0, 0.5)"
diff --git a/packages/pluggableWidgets/line-chart-native/CHANGELOG.md b/packages/pluggableWidgets/line-chart-native/CHANGELOG.md
index 2263d3d16..1d0f0961e 100644
--- a/packages/pluggableWidgets/line-chart-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/line-chart-native/CHANGELOG.md
@@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
### Changed
- We updated victory-native to 36.9.2.
+- Updated react-native from version v0.84.1 to v0.88.0.
## [3.1.1] - 2025-3-18
diff --git a/packages/pluggableWidgets/line-chart-native/package.json b/packages/pluggableWidgets/line-chart-native/package.json
index e351de898..e3cf780dc 100644
--- a/packages/pluggableWidgets/line-chart-native/package.json
+++ b/packages/pluggableWidgets/line-chart-native/package.json
@@ -1,7 +1,7 @@
{
"name": "line-chart-native",
"widgetName": "LineChart",
- "version": "3.3.0",
+ "version": "3.4.0",
"license": "Apache-2.0",
"repository": {
"type": "git",
diff --git a/packages/pluggableWidgets/line-chart-native/src/package.xml b/packages/pluggableWidgets/line-chart-native/src/package.xml
index 92754d924..0978ff54c 100644
--- a/packages/pluggableWidgets/line-chart-native/src/package.xml
+++ b/packages/pluggableWidgets/line-chart-native/src/package.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/packages/pluggableWidgets/listview-swipe-native/CHANGELOG.md b/packages/pluggableWidgets/listview-swipe-native/CHANGELOG.md
index a2e2f185c..7258be83b 100644
--- a/packages/pluggableWidgets/listview-swipe-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/listview-swipe-native/CHANGELOG.md
@@ -6,6 +6,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
## [Unreleased]
+### Changed
+
+- Updated react-native from version v0.84.1 to v0.88.0.
+- Updated react-native-gesture-handler from version v2.31.2 to v2.33.0.
+
## [3.5.0] - 2026-6-10
### Changed
diff --git a/packages/pluggableWidgets/listview-swipe-native/package.json b/packages/pluggableWidgets/listview-swipe-native/package.json
index 6f4a495c1..3ff2c6618 100644
--- a/packages/pluggableWidgets/listview-swipe-native/package.json
+++ b/packages/pluggableWidgets/listview-swipe-native/package.json
@@ -1,7 +1,7 @@
{
"name": "listview-swipe-native",
"widgetName": "ListViewSwipe",
- "version": "3.5.0",
+ "version": "3.6.0",
"license": "Apache-2.0",
"repository": {
"type": "git",
@@ -21,7 +21,7 @@
"dependencies": {
"@mendix/piw-native-utils-internal": "*",
"@mendix/piw-utils-internal": "*",
- "react-native-gesture-handler": "2.31.2"
+ "react-native-gesture-handler": "2.33.0"
},
"devDependencies": {
"@mendix/pluggable-widgets-tools": "*"
diff --git a/packages/pluggableWidgets/listview-swipe-native/src/package.xml b/packages/pluggableWidgets/listview-swipe-native/src/package.xml
index 24115798c..7a5afa5d4 100644
--- a/packages/pluggableWidgets/listview-swipe-native/src/package.xml
+++ b/packages/pluggableWidgets/listview-swipe-native/src/package.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/packages/pluggableWidgets/maps-native/CHANGELOG.md b/packages/pluggableWidgets/maps-native/CHANGELOG.md
index 540e9fcb1..cd6f61f74 100644
--- a/packages/pluggableWidgets/maps-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/maps-native/CHANGELOG.md
@@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
### Changed
- We pinned prop-types to 15.8.1.
+- Updated react-native from version v0.84.1 to v0.88.0.
## [5.2.0] - 2026-5-15
diff --git a/packages/pluggableWidgets/maps-native/package.json b/packages/pluggableWidgets/maps-native/package.json
index de40d2ba8..60d6d1391 100644
--- a/packages/pluggableWidgets/maps-native/package.json
+++ b/packages/pluggableWidgets/maps-native/package.json
@@ -1,7 +1,7 @@
{
"name": "maps-native",
"widgetName": "Maps",
- "version": "5.2.1",
+ "version": "5.3.0",
"license": "Apache-2.0",
"repository": {
"type": "git",
diff --git a/packages/pluggableWidgets/maps-native/src/package.xml b/packages/pluggableWidgets/maps-native/src/package.xml
index 39ebcae3d..f8f89d4f5 100644
--- a/packages/pluggableWidgets/maps-native/src/package.xml
+++ b/packages/pluggableWidgets/maps-native/src/package.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/packages/pluggableWidgets/notifications-native/CHANGELOG.md b/packages/pluggableWidgets/notifications-native/CHANGELOG.md
index 7b6cad06b..6d42d206d 100644
--- a/packages/pluggableWidgets/notifications-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/notifications-native/CHANGELOG.md
@@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
### Changed
- Replaced @notifee/react-native with react-native-notify-kit library.
+- Updated react-native from version v0.84.1 to v0.88.0.
## [5.1.0] - 2025-12-15
diff --git a/packages/pluggableWidgets/notifications-native/package.json b/packages/pluggableWidgets/notifications-native/package.json
index 96d3c7e79..162627930 100644
--- a/packages/pluggableWidgets/notifications-native/package.json
+++ b/packages/pluggableWidgets/notifications-native/package.json
@@ -1,7 +1,7 @@
{
"name": "notifications-native",
"widgetName": "Notifications",
- "version": "5.3.0",
+ "version": "5.4.0",
"license": "Apache-2.0",
"repository": {
"type": "git",
diff --git a/packages/pluggableWidgets/notifications-native/src/package.xml b/packages/pluggableWidgets/notifications-native/src/package.xml
index 0050cb449..0db2735a0 100644
--- a/packages/pluggableWidgets/notifications-native/src/package.xml
+++ b/packages/pluggableWidgets/notifications-native/src/package.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/packages/pluggableWidgets/pie-doughnut-chart-native/CHANGELOG.md b/packages/pluggableWidgets/pie-doughnut-chart-native/CHANGELOG.md
index 701bde23e..7ddbd531f 100644
--- a/packages/pluggableWidgets/pie-doughnut-chart-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/pie-doughnut-chart-native/CHANGELOG.md
@@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
### Changed
- We updated victory-native to 36.9.2.
+- Updated react-native from version v0.84.1 to v0.88.0.
## [2.1.1] - 2025-3-18
diff --git a/packages/pluggableWidgets/pie-doughnut-chart-native/package.json b/packages/pluggableWidgets/pie-doughnut-chart-native/package.json
index 2fb3a3ba2..94cbfb9e6 100644
--- a/packages/pluggableWidgets/pie-doughnut-chart-native/package.json
+++ b/packages/pluggableWidgets/pie-doughnut-chart-native/package.json
@@ -1,7 +1,7 @@
{
"name": "pie-doughnut-chart-native",
"widgetName": "PieDoughnutChart",
- "version": "2.3.0",
+ "version": "2.4.0",
"license": "Apache-2.0",
"copyright": "© Mendix Technology BV 2022. All rights reserved.",
"repository": {
diff --git a/packages/pluggableWidgets/pie-doughnut-chart-native/src/package.xml b/packages/pluggableWidgets/pie-doughnut-chart-native/src/package.xml
index d838b57c0..83f116422 100644
--- a/packages/pluggableWidgets/pie-doughnut-chart-native/src/package.xml
+++ b/packages/pluggableWidgets/pie-doughnut-chart-native/src/package.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/packages/pluggableWidgets/popup-menu-native/CHANGELOG.md b/packages/pluggableWidgets/popup-menu-native/CHANGELOG.md
index bbb65797b..1ce8229f2 100644
--- a/packages/pluggableWidgets/popup-menu-native/CHANGELOG.md
+++ b/packages/pluggableWidgets/popup-menu-native/CHANGELOG.md
@@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
### Changed
- We pinned react-native-material-menu to 1.2.0.
+- Updated react-native from version v0.84.1 to v0.88.0.
## [4.0.1] - 2026-1-19
diff --git a/packages/pluggableWidgets/popup-menu-native/package.json b/packages/pluggableWidgets/popup-menu-native/package.json
index 8efa113a1..db74dad71 100644
--- a/packages/pluggableWidgets/popup-menu-native/package.json
+++ b/packages/pluggableWidgets/popup-menu-native/package.json
@@ -1,7 +1,7 @@
{
"name": "popup-menu-native",
"widgetName": "PopupMenu",
- "version": "4.1.1",
+ "version": "4.2.0",
"license": "Apache-2.0",
"repository": {
"type": "git",
diff --git a/packages/pluggableWidgets/popup-menu-native/src/PopupMenu.tsx b/packages/pluggableWidgets/popup-menu-native/src/PopupMenu.tsx
index 2819768e0..e2d73beeb 100644
--- a/packages/pluggableWidgets/popup-menu-native/src/PopupMenu.tsx
+++ b/packages/pluggableWidgets/popup-menu-native/src/PopupMenu.tsx
@@ -1,28 +1,19 @@
-import { ComponentType, ReactElement, useCallback, useRef, Fragment } from "react";
+import { ReactElement, useCallback, useRef, Fragment } from "react";
import { PopupMenuProps } from "../typings/PopupMenuProps";
import { PopupMenuStyle } from "./ui/Styles";
import { executeAction } from "@mendix/piw-utils-internal";
-import {
- Platform,
- StyleSheet,
- TouchableHighlight,
- TouchableHighlightProps,
- TouchableNativeFeedback,
- TouchableNativeFeedbackProps,
- TouchableOpacity,
- View
-} from "react-native";
+import { Platform, TouchableHighlight, TouchableNativeFeedback, TouchableOpacity, View } from "react-native";
import { ActionValue } from "mendix";
import Menu, { MenuDivider, MenuItem } from "react-native-material-menu";
-const TouchableItem: ComponentType =
+const TouchableItem: typeof TouchableNativeFeedback | typeof TouchableHighlight =
Platform.OS === "android" ? TouchableNativeFeedback : TouchableHighlight;
-const TouchableButton: ComponentType =
+const TouchableButton: typeof TouchableNativeFeedback | typeof TouchableOpacity =
Platform.OS === "android" ? TouchableNativeFeedback : TouchableOpacity;
export function PopupMenu(props: PopupMenuProps): ReactElement {
- const styles = StyleSheet.flatten(props.style);
+ const styles: PopupMenuStyle = Object.assign({}, ...props.style);
const menuRef = useRef