@canonical/react-components 4.5.1 → 4.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -79,11 +79,11 @@ const Modal = _ref => {
79
79
  const listener = keyListenersMap.get(event.code);
80
80
  return listener && listener(event);
81
81
  };
82
- document.addEventListener("keydown", keyDown);
82
+ document.addEventListener("keydown", keyDown, true);
83
83
  return () => {
84
- document.removeEventListener("keydown", keyDown);
84
+ document.removeEventListener("keydown", keyDown, true);
85
85
  };
86
- });
86
+ }, [close]);
87
87
  const handleContentOnMouseDown = () => {
88
88
  shouldClose.current = false;
89
89
  };
@@ -279,6 +279,13 @@ const MultiSelect = _ref4 => {
279
279
  "aria-label": label || placeholder || "Search",
280
280
  disabled: disabled,
281
281
  autoComplete: "off",
282
+ onMouseDown: event => {
283
+ // When displayed as an input, clicking inside the input should not clear
284
+ // the text (e.g. if the user wants to edit what they've typed).
285
+ if (variant === "search") {
286
+ event.stopPropagation();
287
+ }
288
+ },
282
289
  onChange: value => {
283
290
  updateFilter(value);
284
291
  // reopen if dropdown has been closed via ESC
@@ -71,11 +71,11 @@ export var Modal = _ref => {
71
71
  var listener = keyListenersMap.get(event.code);
72
72
  return listener && listener(event);
73
73
  };
74
- document.addEventListener("keydown", keyDown);
74
+ document.addEventListener("keydown", keyDown, true);
75
75
  return () => {
76
- document.removeEventListener("keydown", keyDown);
76
+ document.removeEventListener("keydown", keyDown, true);
77
77
  };
78
- });
78
+ }, [close]);
79
79
  var handleContentOnMouseDown = () => {
80
80
  shouldClose.current = false;
81
81
  };
@@ -270,6 +270,13 @@ export var MultiSelect = _ref4 => {
270
270
  "aria-label": label || placeholder || "Search",
271
271
  disabled: disabled,
272
272
  autoComplete: "off",
273
+ onMouseDown: event => {
274
+ // When displayed as an input, clicking inside the input should not clear
275
+ // the text (e.g. if the user wants to edit what they've typed).
276
+ if (variant === "search") {
277
+ event.stopPropagation();
278
+ }
279
+ },
273
280
  onChange: value => {
274
281
  updateFilter(value);
275
282
  // reopen if dropdown has been closed via ESC
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@canonical/react-components",
3
- "version": "4.5.1",
3
+ "version": "4.5.3",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.js",
6
6
  "author": {
@@ -96,7 +96,7 @@
96
96
  "tsc-alias": "1.8.10",
97
97
  "typescript": "5.7.3",
98
98
  "typescript-eslint": "8.24.1",
99
- "vanilla-framework": "4.50.0",
99
+ "vanilla-framework": "4.51.0",
100
100
  "wait-on": "9.0.3",
101
101
  "webpack": "5.105.0"
102
102
  },