diff --git a/packages/pluggableWidgets/popup-menu-web/CHANGELOG.md b/packages/pluggableWidgets/popup-menu-web/CHANGELOG.md
index 3f95ac3684..7fcb4cd8cb 100644
--- a/packages/pluggableWidgets/popup-menu-web/CHANGELOG.md
+++ b/packages/pluggableWidgets/popup-menu-web/CHANGELOG.md
@@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
## [Unreleased]
+## [4.1.0] - 2024-02-11
+
+### Added
+
+- We added a new 'Close on' setting to customize the popup's closing behavior on click, allowing it to close when clicked anywhere or only outside the popup.
+
## [4.0.3] - 2026-02-10
### Added
diff --git a/packages/pluggableWidgets/popup-menu-web/package.json b/packages/pluggableWidgets/popup-menu-web/package.json
index ece020e720..df92fb0bb1 100644
--- a/packages/pluggableWidgets/popup-menu-web/package.json
+++ b/packages/pluggableWidgets/popup-menu-web/package.json
@@ -1,7 +1,7 @@
{
"name": "@mendix/popup-menu-web",
"widgetName": "PopupMenu",
- "version": "4.0.3",
+ "version": "4.1.0",
"description": "Popup Menu widget for displaying a list of actions in a popup.",
"copyright": "© Mendix Technology BV 2025. All rights reserved.",
"license": "Apache-2.0",
diff --git a/packages/pluggableWidgets/popup-menu-web/src/PopupMenu.editorConfig.ts b/packages/pluggableWidgets/popup-menu-web/src/PopupMenu.editorConfig.ts
index f06ba25b66..c4ddb6b0a8 100644
--- a/packages/pluggableWidgets/popup-menu-web/src/PopupMenu.editorConfig.ts
+++ b/packages/pluggableWidgets/popup-menu-web/src/PopupMenu.editorConfig.ts
@@ -85,6 +85,10 @@ export function getProperties(
hidePropertyIn(defaultProperties, values, "hoverCloseOn");
}
+ if (values.trigger !== "onclick") {
+ hidePropertyIn(defaultProperties, values, "clickCloseOn");
+ }
+
return defaultProperties;
}
diff --git a/packages/pluggableWidgets/popup-menu-web/src/PopupMenu.xml b/packages/pluggableWidgets/popup-menu-web/src/PopupMenu.xml
index 00c80dbbf9..ce04ee0da1 100644
--- a/packages/pluggableWidgets/popup-menu-web/src/PopupMenu.xml
+++ b/packages/pluggableWidgets/popup-menu-web/src/PopupMenu.xml
@@ -91,6 +91,14 @@
Hover
+
+ Close on
+
+
+ Click anywhere
+ Click outside
+
+
Close on
diff --git a/packages/pluggableWidgets/popup-menu-web/src/components/PopupMenu.tsx b/packages/pluggableWidgets/popup-menu-web/src/components/PopupMenu.tsx
index 38973ab21b..62b7a2ae56 100644
--- a/packages/pluggableWidgets/popup-menu-web/src/components/PopupMenu.tsx
+++ b/packages/pluggableWidgets/popup-menu-web/src/components/PopupMenu.tsx
@@ -24,10 +24,13 @@ export function PopupMenu(props: PopupMenuProps): ReactElement {
clippingStrategy: props.clippingStrategy
});
- const handleOnClickItem = useCallback((itemAction?: ActionValue): void => {
- setVisibility(false);
- executeAction(itemAction);
- }, []);
+ const handleOnClickItem = useCallback(
+ (itemAction?: ActionValue): void => {
+ if (props.clickCloseOn === "onClickAnywhere") setVisibility(false);
+ executeAction(itemAction);
+ },
+ [props.clickCloseOn]
+ );
useEffect(() => {
setVisibility(props.menuToggle);
diff --git a/packages/pluggableWidgets/popup-menu-web/src/package.xml b/packages/pluggableWidgets/popup-menu-web/src/package.xml
index 15810cc7ac..9f95ace297 100644
--- a/packages/pluggableWidgets/popup-menu-web/src/package.xml
+++ b/packages/pluggableWidgets/popup-menu-web/src/package.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/packages/pluggableWidgets/popup-menu-web/typings/PopupMenuProps.d.ts b/packages/pluggableWidgets/popup-menu-web/typings/PopupMenuProps.d.ts
index 3cab795a57..8d183c99c9 100644
--- a/packages/pluggableWidgets/popup-menu-web/typings/PopupMenuProps.d.ts
+++ b/packages/pluggableWidgets/popup-menu-web/typings/PopupMenuProps.d.ts
@@ -26,6 +26,8 @@ export interface CustomItemsType {
export type TriggerEnum = "onclick" | "onhover";
+export type ClickCloseOnEnum = "onClickAnywhere" | "onClickOutside";
+
export type HoverCloseOnEnum = "onClickOutside" | "onHoverLeave";
export type PositionEnum = "left" | "right" | "top" | "bottom";
@@ -56,6 +58,7 @@ export interface PopupMenuContainerProps {
basicItems: BasicItemsType[];
customItems: CustomItemsType[];
trigger: TriggerEnum;
+ clickCloseOn: ClickCloseOnEnum;
hoverCloseOn: HoverCloseOnEnum;
position: PositionEnum;
clippingStrategy: ClippingStrategyEnum;
@@ -78,6 +81,7 @@ export interface PopupMenuPreviewProps {
basicItems: BasicItemsPreviewType[];
customItems: CustomItemsPreviewType[];
trigger: TriggerEnum;
+ clickCloseOn: ClickCloseOnEnum;
hoverCloseOn: HoverCloseOnEnum;
position: PositionEnum;
clippingStrategy: ClippingStrategyEnum;
diff --git a/packages/shared/charts/tsconfig.build.tsbuildinfo b/packages/shared/charts/tsconfig.build.tsbuildinfo
index b351b2cb2a..f43879631e 100644
--- a/packages/shared/charts/tsconfig.build.tsbuildinfo
+++ b/packages/shared/charts/tsconfig.build.tsbuildinfo
@@ -1 +1 @@
-{"root":["./src/main.ts","./src/preview.ts","./src/components/chart.tsx","./src/components/chartpreview.tsx","./src/components/chartview.tsx","./src/components/chartwidget.tsx","./src/components/types.ts","./src/helpers/editorstore.ts","./src/helpers/playground-context.ts","./src/helpers/usechartcontroller.ts","./src/helpers/useeditorstore.ts","./src/hooks/useplotchartdataseries.ts","./src/hooks/useresizeobserver.ts","./src/typings/declare-svg.d.ts","./src/typings/global.d.ts","./src/typings/json-source-map.d.ts","./src/utils/aggregations.ts","./src/utils/chartstyles.ts","./src/utils/compareattrvaluesasc.ts","./src/utils/configs.ts","./src/utils/equality.ts","./src/utils/json.ts","./src/utils/preview-utils.ts","./src/utils/setupbasicseries.ts","./src/utils/themefolderconfig.ts"],"version":"5.9.2"}
\ No newline at end of file
+{"root":["./src/main.ts","./src/preview.ts","./src/components/chart.tsx","./src/components/chartpreview.tsx","./src/components/chartview.tsx","./src/components/chartwidget.tsx","./src/components/types.ts","./src/helpers/editorstore.ts","./src/helpers/playground-context.ts","./src/helpers/usechartcontroller.ts","./src/helpers/useeditorstore.ts","./src/hooks/useplotchartdataseries.ts","./src/hooks/useresizeobserver.ts","./src/typings/declare-svg.d.ts","./src/typings/global.d.ts","./src/typings/json-source-map.d.ts","./src/utils/aggregations.ts","./src/utils/chartstyles.ts","./src/utils/compareattrvaluesasc.ts","./src/utils/configs.ts","./src/utils/equality.ts","./src/utils/json.ts","./src/utils/preview-utils.ts","./src/utils/setupbasicseries.ts","./src/utils/themefolderconfig.ts"],"version":"5.9.3"}
\ No newline at end of file