@plesk/ui-library 3.44.0 → 3.45.0

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.
Files changed (175) hide show
  1. package/cjs/components/Action/Action.js +0 -6
  2. package/cjs/components/Alert/Alert.js +5 -1
  3. package/cjs/components/Button/Button.js +2 -0
  4. package/cjs/components/Carousel/Carousel.js +9 -4
  5. package/cjs/components/ComboBox/ComboBox.js +3 -0
  6. package/cjs/components/ComboBoxDropdown/ComboBoxDropdown.js +6 -2
  7. package/cjs/components/ComboBoxDropdown/index.js +6 -0
  8. package/cjs/components/Dialog/Dialog.js +3 -0
  9. package/cjs/components/Drawer/Header.js +5 -0
  10. package/cjs/components/Dropdown/Dropdown.js +3 -0
  11. package/cjs/components/Form/Form.js +3 -1
  12. package/cjs/components/FormField/FormField.js +9 -5
  13. package/cjs/components/FormFieldPassword/FormFieldPassword.js +9 -11
  14. package/cjs/components/InPlaceEdit/Editor.js +6 -7
  15. package/cjs/components/InPlaceEdit/InPlaceEdit.js +4 -4
  16. package/cjs/components/InputFile/InputFile.js +4 -4
  17. package/cjs/components/InputNumber/InputNumber.js +4 -0
  18. package/cjs/components/Layout/Layout.js +8 -0
  19. package/cjs/components/List/List.js +11 -6
  20. package/cjs/components/List/ListActions.js +5 -0
  21. package/cjs/components/LocaleProvider/LocaleProvider.js +13 -3
  22. package/cjs/components/Menu/MenuItem.js +4 -0
  23. package/cjs/components/Overlay/Overlay.js +1 -0
  24. package/cjs/components/Panel/Panel.js +3 -0
  25. package/cjs/components/Popover/Popover.js +3 -0
  26. package/cjs/components/Section/Section.js +4 -0
  27. package/cjs/components/Select/Select.js +12 -1
  28. package/cjs/components/Select/SelectControl.js +24 -7
  29. package/cjs/components/Spinner/Spinner.js +1 -0
  30. package/cjs/components/SwitchesPanelItem/SwitchesPanelItem.js +3 -0
  31. package/cjs/components/Tabs/SearchBar.js +7 -0
  32. package/cjs/components/Tabs/TabClose.js +3 -0
  33. package/cjs/components/Toast/Toast.js +3 -0
  34. package/cjs/components/Tooltip/Tooltip.js +92 -202
  35. package/cjs/components/Tooltip/TooltipContent.js +83 -0
  36. package/cjs/components/Tooltip/getA11yAttributes.js +30 -0
  37. package/cjs/components/Tooltip/useVirtualElement.js +35 -0
  38. package/cjs/components/utils.js +42 -2
  39. package/cjs/hooks/useEscapeKeydown.js +25 -0
  40. package/cjs/index.js +1 -1
  41. package/cjs/locales/ar.js +66 -4
  42. package/cjs/locales/ca-ES.js +66 -4
  43. package/cjs/locales/cs-CZ.js +66 -4
  44. package/cjs/locales/da-DK.js +66 -4
  45. package/cjs/locales/de-DE.js +66 -4
  46. package/cjs/locales/el-GR.js +66 -4
  47. package/cjs/locales/en-US.js +66 -4
  48. package/cjs/locales/es-ES.js +66 -4
  49. package/cjs/locales/fi-FI.js +66 -4
  50. package/cjs/locales/fr-FR.js +66 -4
  51. package/cjs/locales/he-IL.js +66 -4
  52. package/cjs/locales/hu-HU.js +66 -4
  53. package/cjs/locales/id-ID.js +66 -4
  54. package/cjs/locales/it-IT.js +66 -4
  55. package/cjs/locales/ja-JP.js +66 -4
  56. package/cjs/locales/ko-KR.js +66 -4
  57. package/cjs/locales/ms-MY.js +66 -4
  58. package/cjs/locales/nb-NO.js +66 -4
  59. package/cjs/locales/nl-NL.js +66 -4
  60. package/cjs/locales/pl-PL.js +66 -4
  61. package/cjs/locales/pt-BR.js +66 -4
  62. package/cjs/locales/pt-PT.js +66 -4
  63. package/cjs/locales/ro-RO.js +66 -4
  64. package/cjs/locales/ru-RU.js +66 -4
  65. package/cjs/locales/sv-SE.js +66 -4
  66. package/cjs/locales/th-TH.js +66 -4
  67. package/cjs/locales/tl-PH.js +66 -4
  68. package/cjs/locales/tr-TR.js +66 -4
  69. package/cjs/locales/uk-UA.js +66 -4
  70. package/cjs/locales/vi-VN.js +66 -4
  71. package/cjs/locales/zh-CN.js +66 -4
  72. package/cjs/locales/zh-TW.js +66 -4
  73. package/cjs/utils.js +2 -17
  74. package/dist/plesk-ui-library-rtl.css +1 -1
  75. package/dist/plesk-ui-library-rtl.css.map +1 -1
  76. package/dist/plesk-ui-library.css +1 -1
  77. package/dist/plesk-ui-library.css.map +1 -1
  78. package/dist/plesk-ui-library.js +7632 -3008
  79. package/dist/plesk-ui-library.js.map +1 -1
  80. package/dist/plesk-ui-library.min.js +6 -6
  81. package/dist/plesk-ui-library.min.js.map +1 -1
  82. package/esm/components/Action/Action.js +0 -6
  83. package/esm/components/Alert/Alert.js +5 -1
  84. package/esm/components/Button/Button.js +2 -0
  85. package/esm/components/Carousel/Carousel.js +9 -4
  86. package/esm/components/ComboBox/ComboBox.js +3 -0
  87. package/esm/components/ComboBoxDropdown/ComboBoxDropdown.js +4 -1
  88. package/esm/components/ComboBoxDropdown/index.js +1 -1
  89. package/esm/components/Dialog/Dialog.js +3 -0
  90. package/esm/components/Drawer/Header.js +5 -0
  91. package/esm/components/Dropdown/Dropdown.js +3 -0
  92. package/esm/components/Form/Form.js +3 -1
  93. package/esm/components/FormField/FormField.js +9 -5
  94. package/esm/components/FormFieldPassword/FormFieldPassword.js +9 -11
  95. package/esm/components/InPlaceEdit/Editor.js +6 -7
  96. package/esm/components/InPlaceEdit/InPlaceEdit.js +4 -4
  97. package/esm/components/InputFile/InputFile.js +4 -4
  98. package/esm/components/InputNumber/InputNumber.js +4 -0
  99. package/esm/components/Layout/Layout.js +8 -0
  100. package/esm/components/List/List.js +11 -6
  101. package/esm/components/List/ListActions.js +5 -0
  102. package/esm/components/LocaleProvider/LocaleProvider.js +11 -2
  103. package/esm/components/Menu/MenuItem.js +5 -1
  104. package/esm/components/Overlay/Overlay.js +2 -1
  105. package/esm/components/Panel/Panel.js +3 -0
  106. package/esm/components/Popover/Popover.js +3 -0
  107. package/esm/components/Section/Section.js +4 -0
  108. package/esm/components/Select/Select.js +13 -2
  109. package/esm/components/Select/SelectControl.js +24 -7
  110. package/esm/components/Spinner/Spinner.js +1 -0
  111. package/esm/components/SwitchesPanelItem/SwitchesPanelItem.js +3 -0
  112. package/esm/components/Tabs/SearchBar.js +7 -0
  113. package/esm/components/Tabs/TabClose.js +3 -0
  114. package/esm/components/Toast/Toast.js +3 -0
  115. package/esm/components/Tooltip/Tooltip.js +94 -204
  116. package/esm/components/Tooltip/TooltipContent.js +75 -0
  117. package/esm/components/Tooltip/getA11yAttributes.js +23 -0
  118. package/esm/components/Tooltip/useVirtualElement.js +28 -0
  119. package/esm/components/utils.js +37 -1
  120. package/esm/hooks/useEscapeKeydown.js +18 -0
  121. package/esm/index.js +1 -1
  122. package/esm/locales/ar.js +66 -4
  123. package/esm/locales/ca-ES.js +66 -4
  124. package/esm/locales/cs-CZ.js +66 -4
  125. package/esm/locales/da-DK.js +66 -4
  126. package/esm/locales/de-DE.js +66 -4
  127. package/esm/locales/el-GR.js +66 -4
  128. package/esm/locales/en-US.js +66 -4
  129. package/esm/locales/es-ES.js +66 -4
  130. package/esm/locales/fi-FI.js +66 -4
  131. package/esm/locales/fr-FR.js +66 -4
  132. package/esm/locales/he-IL.js +66 -4
  133. package/esm/locales/hu-HU.js +66 -4
  134. package/esm/locales/id-ID.js +66 -4
  135. package/esm/locales/it-IT.js +66 -4
  136. package/esm/locales/ja-JP.js +66 -4
  137. package/esm/locales/ko-KR.js +66 -4
  138. package/esm/locales/ms-MY.js +66 -4
  139. package/esm/locales/nb-NO.js +66 -4
  140. package/esm/locales/nl-NL.js +66 -4
  141. package/esm/locales/pl-PL.js +66 -4
  142. package/esm/locales/pt-BR.js +66 -4
  143. package/esm/locales/pt-PT.js +66 -4
  144. package/esm/locales/ro-RO.js +66 -4
  145. package/esm/locales/ru-RU.js +66 -4
  146. package/esm/locales/sv-SE.js +66 -4
  147. package/esm/locales/th-TH.js +66 -4
  148. package/esm/locales/tl-PH.js +66 -4
  149. package/esm/locales/tr-TR.js +66 -4
  150. package/esm/locales/uk-UA.js +66 -4
  151. package/esm/locales/vi-VN.js +66 -4
  152. package/esm/locales/zh-CN.js +66 -4
  153. package/esm/locales/zh-TW.js +66 -4
  154. package/esm/utils.js +0 -14
  155. package/package.json +7 -6
  156. package/styleguide/build/bundle.1771d6b7.js +2 -0
  157. package/styleguide/index.html +2 -2
  158. package/types/components/Button/Button.d.ts +6 -0
  159. package/types/components/ComboBoxDropdown/ComboBoxDropdown.d.ts +1 -0
  160. package/types/components/ComboBoxDropdown/index.d.ts +1 -1
  161. package/types/components/Dropdown/Dropdown.d.ts +5 -0
  162. package/types/components/Layout/Layout.d.ts +1 -0
  163. package/types/components/List/ListActions.d.ts +6 -1
  164. package/types/components/LocaleProvider/LocaleProvider.d.ts +3 -0
  165. package/types/components/Select/Select.d.ts +4 -0
  166. package/types/components/Select/SelectControl.d.ts +4 -0
  167. package/types/components/Tooltip/Tooltip.d.ts +15 -26
  168. package/types/components/Tooltip/TooltipContent.d.ts +11 -0
  169. package/types/components/Tooltip/getA11yAttributes.d.ts +19 -0
  170. package/types/components/Tooltip/useVirtualElement.d.ts +3 -0
  171. package/types/components/utils.d.ts +8 -1
  172. package/types/hooks/useEscapeKeydown.d.ts +1 -0
  173. package/types/utils.d.ts +0 -3
  174. package/styleguide/build/bundle.cf3363eb.js +0 -2
  175. /package/styleguide/build/{bundle.cf3363eb.js.LICENSE.txt → bundle.1771d6b7.js.LICENSE.txt} +0 -0
@@ -13,6 +13,7 @@ var _Dropdown = _interopRequireDefault(require("../Dropdown"));
13
13
  var _Menu = _interopRequireDefault(require("../Menu"));
14
14
  var _ListAction = _interopRequireDefault(require("./ListAction"));
15
15
  var _VerticalContext = _interopRequireDefault(require("../VerticalContext"));
16
+ var _LocaleProvider = require("../LocaleProvider");
16
17
  var _jsxRuntime = require("react/jsx-runtime");
17
18
  // Copyright 1999-2025. WebPros International GmbH. All rights reserved.
18
19
 
@@ -26,8 +27,10 @@ const ListActions = _ref => {
26
27
  className,
27
28
  children,
28
29
  locale,
30
+ onMenuToggle,
29
31
  ...props
30
32
  } = _ref;
33
+ const translate = (0, _LocaleProvider.useInternalTranslate)('ListActions');
31
34
  const [overlay, setOverlay] = (0, _react.useState)(false);
32
35
  const vertical = (0, _react.useContext)(_VerticalContext.default);
33
36
  (0, _react.useEffect)(() => {
@@ -82,7 +85,9 @@ const ListActions = _ref => {
82
85
  menuPlacement: "bottom-end",
83
86
  overlay: overlay,
84
87
  locale: locale,
88
+ onToggle: onMenuToggle,
85
89
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
90
+ "aria-label": translate('menuButton'),
86
91
  ghost: true,
87
92
  icon: "kebab"
88
93
  })
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.useTranslate = exports.useInternalTranslate = exports.default = exports.LocaleContext = exports.LocaleBetaProvider = void 0;
7
+ exports.useTranslate = exports.useInternalTranslate = exports.getInternalTranslate = exports.default = exports.LocaleContext = exports.LocaleBetaProvider = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _react = require("react");
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -105,11 +105,21 @@ const useTranslate = namespace => {
105
105
  return (0, _react.useCallback)(
106
106
  // eslint-disable-next-line max-params
107
107
  (key, params, fallback, defaultMessages) => {
108
- const lmsg = context?.locale.lmsg ?? createTranslate({});
109
- return lmsg(namespace ? `${namespace}.${key}` : key, params, fallback, defaultMessages);
108
+ if (context || defaultMessages) {
109
+ const lmsg = context?.locale.lmsg ?? createTranslate({});
110
+ return lmsg(namespace ? `${namespace}.${key}` : key, params, fallback, defaultMessages);
111
+ }
112
+ return typeof fallback === 'string' ? applyParams(fallback, params) : `[${key}]`;
110
113
  }, [context, namespace]);
111
114
  };
112
115
  exports.useTranslate = useTranslate;
116
+ /** Internal function to support legacy class components */
117
+ const getInternalTranslate = namespace => {
118
+ const defaultMessages = (0, _Translate.getLocaleMessages)();
119
+ const lmsg = createTranslate(defaultMessages ?? {});
120
+ return (key, params) => lmsg(namespace ? `${namespace}.${key}` : key, params);
121
+ };
122
+ exports.getInternalTranslate = getInternalTranslate;
113
123
  const useInternalTranslate = namespace => {
114
124
  const translate = useTranslate(namespace);
115
125
  const defaultMessages = (0, _Translate.getLocaleMessages)();
@@ -48,6 +48,10 @@ const MenuItem = _ref => {
48
48
  icon: icon,
49
49
  label: label,
50
50
  ...props,
51
+ onKeyDown: (0, _utils.createKeyboardClickAdapter)({
52
+ disabled,
53
+ existingHandler: props.onKeyDown
54
+ }),
51
55
  children: children
52
56
  });
53
57
  if (tooltip) {
@@ -154,6 +154,7 @@ const Overlay = _ref2 => {
154
154
  if (!isOpenRef.current) return;
155
155
  isOpenRef.current = false;
156
156
  if (--overlaysCount === 0) (0, _utils.enableDocumentScroll)();
157
+ (0, _utils2.setFocusReturned)(prevFocusElementRef.current, 300);
157
158
  prevFocusElementRef.current?.focus();
158
159
  }, []);
159
160
  (0, _react.useEffect)(() => {
@@ -13,6 +13,7 @@ var _Translate = require("../Translate");
13
13
  var _Heading = _interopRequireDefault(require("../Heading"));
14
14
  var _Button = _interopRequireDefault(require("../Button"));
15
15
  var _utils = require("../utils");
16
+ var _LocaleProvider = require("../LocaleProvider");
16
17
  var _jsxRuntime = require("react/jsx-runtime");
17
18
  // Copyright 1999-2025. WebPros International GmbH. All rights reserved.
18
19
 
@@ -32,6 +33,7 @@ const Panel = _ref => {
32
33
  extra,
33
34
  ...props
34
35
  } = _ref;
36
+ const translate = (0, _LocaleProvider.useInternalTranslate)('Panel');
35
37
  const rootRef = (0, _react.useRef)(null);
36
38
  const isControlled = externalCollapsed !== undefined;
37
39
  const [internalCollapsed, setInternalCollapsed] = (0, _react.useState)(false);
@@ -68,6 +70,7 @@ const Panel = _ref => {
68
70
  className: `${baseClassName}__extra`,
69
71
  children: [extra, collapsible && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
70
72
  ghost: true,
73
+ "aria-label": translate(collapsed ? 'expand' : 'collapse'),
71
74
  className: `${baseClassName}__control-button`,
72
75
  icon: {
73
76
  name: 'chevron-up',
@@ -19,9 +19,11 @@ var _utils = require("../utils");
19
19
  var _OnDarkContext = _interopRequireDefault(require("../OnDarkContext"));
20
20
  var _FocusTrap = _interopRequireDefault(require("../FocusTrap"));
21
21
  var _react = require("react");
22
+ var _LocaleProvider = require("../LocaleProvider");
22
23
  var _jsxRuntime = require("react/jsx-runtime");
23
24
  // Copyright 1999-2025. WebPros International GmbH. All rights reserved.
24
25
 
26
+ const translate = (0, _LocaleProvider.getInternalTranslate)('Popover');
25
27
  const PLACEMENT_MAP = {
26
28
  'top-left': 'top-end',
27
29
  'top-right': 'top-start',
@@ -220,6 +222,7 @@ class Popover extends _react.Component {
220
222
  }
221
223
  }
222
224
  const close = /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
225
+ "aria-label": translate('closeButton'),
223
226
  className: (0, _classnames.default)(`${baseClassName}__close`, title && `${baseClassName}__close--heading`),
224
227
  onClick: this.handleClose,
225
228
  ghost: true,
@@ -15,6 +15,7 @@ var _VerticalContext = _interopRequireDefault(require("../VerticalContext"));
15
15
  var _SectionContext = _interopRequireDefault(require("./SectionContext"));
16
16
  var _useCollapsed = require("./useCollapsed");
17
17
  var _useVertical = require("./useVertical");
18
+ var _LocaleProvider = require("../LocaleProvider");
18
19
  var _jsxRuntime = require("react/jsx-runtime");
19
20
  // Copyright 1999-2025. WebPros International GmbH. All rights reserved.
20
21
 
@@ -41,6 +42,7 @@ const Section = _ref => {
41
42
  children,
42
43
  ...props
43
44
  } = _ref;
45
+ const translate = (0, _LocaleProvider.useInternalTranslate)('Section');
44
46
  const containerRef = (0, _react.useRef)(null);
45
47
  const collapseButtonRef = (0, _react.useRef)(null);
46
48
  const vertical = (0, _useVertical.useVertical)(externalVertical, containerRef);
@@ -74,6 +76,7 @@ const Section = _ref => {
74
76
  children: [title && /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
75
77
  className: `${baseClassName}__header`,
76
78
  children: [collapsible && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
79
+ "aria-label": translate(collapsed ? 'expand' : 'collapse'),
77
80
  ref: collapseButtonRef,
78
81
  ghost: true,
79
82
  className: (0, _classnames.default)(`${baseClassName}__control-button`, `${baseClassName}__control-button--collapse`),
@@ -97,6 +100,7 @@ const Section = _ref => {
97
100
  className: `${baseClassName}__header-buttons`,
98
101
  children: [buttons, onClose && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
99
102
  ghost: true,
103
+ "aria-label": translate('closeButton'),
100
104
  className: (0, _classnames.default)(`${baseClassName}__control-button`, `${baseClassName}__control-button--close`),
101
105
  onClick: onClose,
102
106
  icon: "cross-mark"
@@ -93,6 +93,10 @@ const getNextValue = (value, prevValue) => {
93
93
  }
94
94
  return value;
95
95
  };
96
+ const getActiveDescendant = (options, listboxId, highlightedIndex) => {
97
+ const option = options[highlightedIndex];
98
+ return option?.props?.id ?? (0, _ComboBoxDropdown.getOptionId)(listboxId, highlightedIndex);
99
+ };
96
100
  /**
97
101
  * `Select` component is used for making a choice among a set of related options.
98
102
  * @since 2.3.0
@@ -113,13 +117,16 @@ const Select = _ref => {
113
117
  clearable = false,
114
118
  multiple = false,
115
119
  placeholder,
120
+ 'aria-label': ariaLabel,
121
+ 'aria-labelledby': ariaLabelledBy,
116
122
  ...props
117
123
  } = _ref;
118
124
  const [opened, setOpened] = (0, _react.useState)(false);
119
125
  const controlRef = (0, _react.useRef)(null);
120
126
  const emitterRef = (0, _react.useRef)(new _utils.EventEmitter());
121
127
  const uid = (0, _react.useId)();
122
- const listboxId = `${baseClassName}-listbox-${id || uid}`;
128
+ const ariaId = id || uid;
129
+ const listboxId = `${baseClassName}-listbox-${ariaId}`;
123
130
  let [value, setValue] = (0, _react.useState)(() => {
124
131
  if (typeof defaultValue === 'undefined') {
125
132
  return multiple ? [] : undefined;
@@ -297,7 +304,11 @@ const Select = _ref => {
297
304
  onValueRemove: handleValueRemove,
298
305
  placeholder: placeholder,
299
306
  opened: opened,
307
+ ariaId: ariaId,
300
308
  listboxId: listboxId,
309
+ "aria-label": ariaLabel,
310
+ "aria-labelledby": ariaLabelledBy,
311
+ "aria-activedescendant": opened ? getActiveDescendant(options, listboxId, highlightedIndex) : undefined,
301
312
  ref: controlRef
302
313
  });
303
314
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_ComboBoxDropdown.default, {
@@ -58,7 +58,11 @@ const SelectControl = /*#__PURE__*/(0, _react.forwardRef)(function SelectControl
58
58
  onValueRemove,
59
59
  placeholder,
60
60
  opened = false,
61
+ ariaId,
61
62
  listboxId,
63
+ 'aria-label': ariaLabel,
64
+ 'aria-labelledby': ariaLabelledBy,
65
+ 'aria-activedescendant': ariaActiveDescendant,
62
66
  ...props
63
67
  } = _ref;
64
68
  const inputRef = (0, _react.useRef)(null);
@@ -82,6 +86,7 @@ const SelectControl = /*#__PURE__*/(0, _react.forwardRef)(function SelectControl
82
86
  values = [current.value];
83
87
  }
84
88
  const hasValue = values.length > 0;
89
+ const valueId = `${ariaId}-value`;
85
90
  (0, _react.useLayoutEffect)(() => {
86
91
  if (filterValue === '') {
87
92
  setInputWidth(DEFAULT_INPUT_WIDTH);
@@ -109,6 +114,15 @@ const SelectControl = /*#__PURE__*/(0, _react.forwardRef)(function SelectControl
109
114
  };
110
115
  const handleKeyDown = e => {
111
116
  switch (e.key) {
117
+ case ' ':
118
+ if (searchable) break;
119
+ e.preventDefault();
120
+ if (opened) {
121
+ onHighlightConfirm();
122
+ } else {
123
+ onHighlightChange(0);
124
+ }
125
+ break;
112
126
  case 'ArrowUp':
113
127
  e.preventDefault();
114
128
  onHighlightChange(-1);
@@ -171,6 +185,7 @@ const SelectControl = /*#__PURE__*/(0, _react.forwardRef)(function SelectControl
171
185
  onClick: handleClick,
172
186
  ref: ref,
173
187
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
188
+ id: valueId,
174
189
  className: `${baseClassName}__value-container`,
175
190
  children: [Array.isArray(current) && current.map(_ref3 => {
176
191
  let {
@@ -200,12 +215,15 @@ const SelectControl = /*#__PURE__*/(0, _react.forwardRef)(function SelectControl
200
215
  style: {
201
216
  width: inputWidth
202
217
  },
203
- role: searchable ? 'combobox' : undefined,
204
- "aria-autocomplete": searchable ? 'list' : undefined,
205
- "aria-haspopup": searchable ? 'listbox' : 'listbox',
218
+ role: "combobox",
219
+ "aria-haspopup": "listbox",
206
220
  "aria-expanded": opened,
207
221
  "aria-controls": listboxId,
208
- autoComplete: "off"
222
+ "aria-autocomplete": searchable ? 'list' : undefined,
223
+ "aria-activedescendant": ariaActiveDescendant,
224
+ "aria-label": ariaLabel,
225
+ "aria-labelledby": ariaLabelledBy,
226
+ "aria-describedby": hasValue ? valueId : undefined
209
227
  }), !filterValue && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, {
210
228
  children: [!Array.isArray(current) && current && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
211
229
  className: `${baseClassName}__value`,
@@ -218,6 +236,7 @@ const SelectControl = /*#__PURE__*/(0, _react.forwardRef)(function SelectControl
218
236
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
219
237
  className: `${baseClassName}__indicators`,
220
238
  children: [clearable && hasValue && /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
239
+ "aria-label": translate('clearButton'),
221
240
  type: "button",
222
241
  className: (0, _classnames.default)(`${baseClassName}__indicator`, `${baseClassName}__indicator--clear`),
223
242
  tabIndex: -1,
@@ -242,14 +261,12 @@ const SelectControl = /*#__PURE__*/(0, _react.forwardRef)(function SelectControl
242
261
  type: "button",
243
262
  className: (0, _classnames.default)(`${baseClassName}__indicator`, `${baseClassName}__indicator--dropdown`),
244
263
  tabIndex: -1,
245
- "aria-haspopup": "listbox",
246
- "aria-expanded": opened,
264
+ "aria-hidden": "true",
247
265
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Icon.default, {
248
266
  className: `${baseClassName}__indicator-icon`,
249
267
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("svg", {
250
268
  xmlns: "http://www.w3.org/2000/svg",
251
269
  viewBox: "-4 -5 16 16",
252
- "aria-hidden": "true",
253
270
  focusable: "false",
254
271
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("path", {
255
272
  d: "M4 4.048L.847.895a.496.496 0 1 0-.702.702l3.452 3.451a.5.5 0 0 0 .806 0l3.452-3.451a.496.496 0 0 0-.702-.702L4 4.048z"
@@ -21,6 +21,7 @@ const Spinner = _ref => {
21
21
  ...props
22
22
  } = _ref;
23
23
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("svg", {
24
+ "aria-hidden": true,
24
25
  className: (0, _classnames.default)(baseClassName, className, {
25
26
  [`${baseClassName}--color-animation`]: colorAnimation
26
27
  }),
@@ -10,6 +10,7 @@ var _constants = require("../../constants");
10
10
  var _Switch = _interopRequireDefault(require("../Switch"));
11
11
  var _Action = _interopRequireDefault(require("../Action"));
12
12
  var _Popover = _interopRequireDefault(require("../Popover"));
13
+ var _LocaleProvider = require("../LocaleProvider");
13
14
  var _jsxRuntime = require("react/jsx-runtime");
14
15
  // Copyright 1999-2025. WebPros International GmbH. All rights reserved.
15
16
 
@@ -32,6 +33,7 @@ const SwitchesPanelItem = _ref => {
32
33
  baseClassName = `${_constants.CLS_PREFIX}switches-panel-item`,
33
34
  ...props
34
35
  } = _ref;
36
+ const translate = (0, _LocaleProvider.useInternalTranslate)('SwitchesPanelItem');
35
37
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
36
38
  className: (0, _classnames.default)(baseClassName, {
37
39
  [`${baseClassName}--${intent}`]: intent
@@ -56,6 +58,7 @@ const SwitchesPanelItem = _ref => {
56
58
  children: [children, fullDescription && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Popover.default, {
57
59
  intent: "info",
58
60
  target: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Action.default, {
61
+ "aria-label": translate('showDescription'),
59
62
  icon: "question-mark-circle",
60
63
  outerProps: {
61
64
  className: `${baseClassName}__full-description-toggle`
@@ -17,10 +17,13 @@ var _Input = _interopRequireDefault(require("../Input"));
17
17
  var _Menu = _interopRequireWildcard(require("../Menu"));
18
18
  var _ResponsiveContext = _interopRequireDefault(require("../ResponsiveContext"));
19
19
  var _utils2 = require("../utils");
20
+ var _LocaleProvider = require("../LocaleProvider");
20
21
  var _jsxRuntime = require("react/jsx-runtime");
21
22
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
22
23
  // Copyright 1999-2025. WebPros International GmbH. All rights reserved.
23
24
 
25
+ const translate = (0, _LocaleProvider.getInternalTranslate)('SearchBar');
26
+
24
27
  /**
25
28
  * `SearchBar` component is used for providing type-as-you-go search.
26
29
  * @since 0.0.58
@@ -359,6 +362,7 @@ class SearchBar extends _react.Component {
359
362
  intent: "info",
360
363
  hidden: !value,
361
364
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
365
+ "aria-label": translate('expandSearch'),
362
366
  icon: "search",
363
367
  onClick: this.handleExpand
364
368
  })
@@ -375,6 +379,7 @@ class SearchBar extends _react.Component {
375
379
  ...inputProps,
376
380
  value: value,
377
381
  prefix: (collapsable && !isCollapsed || distractionFreeModeEnabled) && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
382
+ "aria-label": translate('collapseSearch'),
378
383
  icon: {
379
384
  name: 'chevron-right',
380
385
  flipHorizontal: (0, _utils.isRtl)()
@@ -384,10 +389,12 @@ class SearchBar extends _react.Component {
384
389
  }),
385
390
  suffix: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
386
391
  children: [value && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
392
+ "aria-label": translate('clearButton'),
387
393
  icon: "remove",
388
394
  onClick: this.handleReset,
389
395
  ghost: true
390
396
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
397
+ "aria-label": translate('searchButton'),
391
398
  icon: "search",
392
399
  onClick: this.handleSearch,
393
400
  state: loading ? 'loading' : undefined,
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _Icon = _interopRequireDefault(require("../Icon"));
9
+ var _LocaleProvider = require("../LocaleProvider");
9
10
  var _jsxRuntime = require("react/jsx-runtime");
10
11
  // Copyright 1999-2025. WebPros International GmbH. All rights reserved.
11
12
 
@@ -15,10 +16,12 @@ const TabClose = _ref => {
15
16
  onClose,
16
17
  baseClassName
17
18
  } = _ref;
19
+ const translate = (0, _LocaleProvider.useInternalTranslate)('Tabs');
18
20
  if (typeof onClose !== 'function') {
19
21
  return null;
20
22
  }
21
23
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
24
+ "aria-label": translate('closeButton'),
22
25
  className: `${baseClassName}__${tabMode}-close`,
23
26
  type: "button",
24
27
  onClick: e => {
@@ -12,6 +12,7 @@ var _Button = _interopRequireDefault(require("../Button"));
12
12
  var _intentIconMap = require("../intentIconMap");
13
13
  var _OnDarkContext = _interopRequireDefault(require("../OnDarkContext"));
14
14
  var _useAutoClose = require("./useAutoClose");
15
+ var _LocaleProvider = require("../LocaleProvider");
15
16
  var _jsxRuntime = require("react/jsx-runtime");
16
17
  // Copyright 1999-2025. WebPros International GmbH. All rights reserved.
17
18
 
@@ -33,6 +34,7 @@ const Toast = _ref => {
33
34
  groupKey,
34
35
  ...props
35
36
  } = _ref;
37
+ const translate = (0, _LocaleProvider.useInternalTranslate)('Toast');
36
38
  (0, _useAutoClose.useAutoClose)({
37
39
  autoClosable,
38
40
  autoCloseTimeout,
@@ -56,6 +58,7 @@ const Toast = _ref => {
56
58
  className: `${baseClassName}__action`,
57
59
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button.default, {
58
60
  ghost: true,
61
+ "aria-label": translate('closeButton'),
59
62
  icon: {
60
63
  name: 'cross-mark',
61
64
  size: '12'