From 51eb563c9467e0398db72dc40fef0c19ebf8bf06 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 8 Feb 2026 01:45:15 +0000 Subject: [PATCH 1/5] Initial plan From dcf2c4829031e8132d63aeb67134f1e4aaf77949 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 8 Feb 2026 01:50:21 +0000 Subject: [PATCH 2/5] Add event passthrough for makeup-menu-button-select and makeup-menu-button-change Co-authored-by: ianmcburnie <38065+ianmcburnie@users.noreply.github.com> --- docs/ui/makeup-menu-button/index.js | 6 +++--- packages/ui/makeup-menu-button/src/index.js | 8 ++++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/docs/ui/makeup-menu-button/index.js b/docs/ui/makeup-menu-button/index.js index 441a1207..f3e2d761 100644 --- a/docs/ui/makeup-menu-button/index.js +++ b/docs/ui/makeup-menu-button/index.js @@ -32,8 +32,8 @@ window.onload = function () { menuItemButtonAriaLabelSelector, }); - widget.menu.el.addEventListener("makeup-menu-select", (e) => console.log(e.type, e.detail)); - widget.menu.el.addEventListener("makeup-menu-change", (e) => console.log(e.type, e.detail)); - widget.menu.el.addEventListener("makeup-menu-button-mutation", (e) => console.log(e.type, e.detail)); + el.addEventListener("makeup-menu-button-select", (e) => console.log(e.type, e.detail)); + el.addEventListener("makeup-menu-button-change", (e) => console.log(e.type, e.detail)); + el.addEventListener("makeup-menu-button-mutation", (e) => console.log(e.type, e.detail)); }); }; diff --git a/packages/ui/makeup-menu-button/src/index.js b/packages/ui/makeup-menu-button/src/index.js index 844a438a..13d4013c 100644 --- a/packages/ui/makeup-menu-button/src/index.js +++ b/packages/ui/makeup-menu-button/src/index.js @@ -123,6 +123,14 @@ function _onMenuItemSelect(e) { const widget = this; const { el } = e.detail; + // Re-dispatch the menu event as a menu-button event + const eventName = e.type === "makeup-menu-select" ? "makeup-menu-button-select" : "makeup-menu-button-change"; + this.el.dispatchEvent( + new CustomEvent(eventName, { + detail: e.detail, + }), + ); + setTimeout(function () { widget._expander.expanded = false; widget._buttonEl.focus(); From 972b39ae482465e530bcf676af9ed6a976be36c6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 8 Feb 2026 01:51:39 +0000 Subject: [PATCH 3/5] Add guard for unexpected event types in event passthrough Co-authored-by: ianmcburnie <38065+ianmcburnie@users.noreply.github.com> --- packages/ui/makeup-menu-button/src/index.js | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/packages/ui/makeup-menu-button/src/index.js b/packages/ui/makeup-menu-button/src/index.js index 13d4013c..6fb7e423 100644 --- a/packages/ui/makeup-menu-button/src/index.js +++ b/packages/ui/makeup-menu-button/src/index.js @@ -124,12 +124,20 @@ function _onMenuItemSelect(e) { const { el } = e.detail; // Re-dispatch the menu event as a menu-button event - const eventName = e.type === "makeup-menu-select" ? "makeup-menu-button-select" : "makeup-menu-button-change"; - this.el.dispatchEvent( - new CustomEvent(eventName, { - detail: e.detail, - }), - ); + let eventName; + if (e.type === "makeup-menu-select") { + eventName = "makeup-menu-button-select"; + } else if (e.type === "makeup-menu-change") { + eventName = "makeup-menu-button-change"; + } + + if (eventName) { + this.el.dispatchEvent( + new CustomEvent(eventName, { + detail: e.detail, + }), + ); + } setTimeout(function () { widget._expander.expanded = false; From cd012e0a6245cdf590af5b4f46852efcb193928a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 8 Feb 2026 01:52:14 +0000 Subject: [PATCH 4/5] Improve event type mapping with cleaner object-based approach Co-authored-by: ianmcburnie <38065+ianmcburnie@users.noreply.github.com> --- packages/ui/makeup-menu-button/src/index.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/packages/ui/makeup-menu-button/src/index.js b/packages/ui/makeup-menu-button/src/index.js index 6fb7e423..08a00fcd 100644 --- a/packages/ui/makeup-menu-button/src/index.js +++ b/packages/ui/makeup-menu-button/src/index.js @@ -124,13 +124,12 @@ function _onMenuItemSelect(e) { const { el } = e.detail; // Re-dispatch the menu event as a menu-button event - let eventName; - if (e.type === "makeup-menu-select") { - eventName = "makeup-menu-button-select"; - } else if (e.type === "makeup-menu-change") { - eventName = "makeup-menu-button-change"; - } - + const eventTypeMap = { + "makeup-menu-select": "makeup-menu-button-select", + "makeup-menu-change": "makeup-menu-button-change", + }; + const eventName = eventTypeMap[e.type]; + if (eventName) { this.el.dispatchEvent( new CustomEvent(eventName, { From 28eafd13bbed8236a09900fc6eccd761e2fed753 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 8 Feb 2026 01:52:41 +0000 Subject: [PATCH 5/5] Add bubbles property to custom events for proper event propagation Co-authored-by: ianmcburnie <38065+ianmcburnie@users.noreply.github.com> --- packages/ui/makeup-menu-button/src/index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/ui/makeup-menu-button/src/index.js b/packages/ui/makeup-menu-button/src/index.js index 08a00fcd..46d27504 100644 --- a/packages/ui/makeup-menu-button/src/index.js +++ b/packages/ui/makeup-menu-button/src/index.js @@ -134,6 +134,7 @@ function _onMenuItemSelect(e) { this.el.dispatchEvent( new CustomEvent(eventName, { detail: e.detail, + bubbles: true, }), ); }