@atlaskit/react-select 2.2.1 → 2.4.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 (253) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/cjs/compiled/components/containers.compiled.css +26 -0
  3. package/dist/cjs/compiled/components/containers.js +119 -0
  4. package/dist/cjs/compiled/components/control.compiled.css +51 -0
  5. package/dist/cjs/compiled/components/control.js +66 -0
  6. package/dist/cjs/compiled/components/group.compiled.css +12 -0
  7. package/dist/cjs/compiled/components/group.js +81 -0
  8. package/dist/cjs/compiled/components/indicators.compiled.css +24 -0
  9. package/dist/cjs/compiled/components/indicators.js +157 -0
  10. package/dist/cjs/compiled/components/input.compiled.css +49 -0
  11. package/dist/cjs/compiled/components/input.js +69 -0
  12. package/dist/cjs/compiled/components/internal/a11y-text.compiled.css +15 -0
  13. package/dist/cjs/compiled/components/internal/a11y-text.js +23 -0
  14. package/dist/cjs/compiled/components/internal/dummy-input.compiled.css +17 -0
  15. package/dist/cjs/compiled/components/internal/dummy-input.js +30 -0
  16. package/dist/cjs/compiled/components/internal/required-input.compiled.css +8 -0
  17. package/dist/cjs/compiled/components/internal/required-input.js +34 -0
  18. package/dist/cjs/compiled/components/live-region.js +177 -0
  19. package/dist/cjs/compiled/components/menu.compiled.css +19 -0
  20. package/dist/cjs/compiled/components/menu.js +491 -0
  21. package/dist/cjs/compiled/components/multi-value.compiled.css +56 -0
  22. package/dist/cjs/compiled/components/multi-value.js +199 -0
  23. package/dist/cjs/compiled/components/option.compiled.css +22 -0
  24. package/dist/cjs/compiled/components/option.js +57 -0
  25. package/dist/cjs/compiled/components/placeholder.compiled.css +7 -0
  26. package/dist/cjs/compiled/components/placeholder.js +45 -0
  27. package/dist/cjs/compiled/components/single-value.compiled.css +13 -0
  28. package/dist/cjs/compiled/components/single-value.js +46 -0
  29. package/dist/cjs/components/containers.js +12 -72
  30. package/dist/cjs/components/control.js +11 -96
  31. package/dist/cjs/components/group.js +15 -53
  32. package/dist/cjs/components/indicators.js +15 -107
  33. package/dist/cjs/components/input.js +12 -81
  34. package/dist/cjs/components/internal/a11y-text.js +6 -25
  35. package/dist/cjs/components/internal/dummy-input.js +8 -36
  36. package/dist/cjs/components/internal/notify-open-layer-observer.js +1 -0
  37. package/dist/cjs/components/internal/required-input.js +7 -31
  38. package/dist/cjs/components/internal/scroll-manager.js +19 -17
  39. package/dist/cjs/components/live-region.js +6 -164
  40. package/dist/cjs/components/menu.js +24 -399
  41. package/dist/cjs/components/multi-value.js +21 -197
  42. package/dist/cjs/components/option.js +11 -68
  43. package/dist/cjs/components/placeholder.js +11 -20
  44. package/dist/cjs/components/single-value.js +11 -26
  45. package/dist/cjs/emotion/components/containers.js +2 -0
  46. package/dist/cjs/emotion/components/control.js +2 -0
  47. package/dist/cjs/emotion/components/group.js +1 -0
  48. package/dist/cjs/emotion/components/indicators.js +1 -0
  49. package/dist/cjs/emotion/components/input.js +1 -1
  50. package/dist/cjs/emotion/components/internal/a11y-text.js +1 -0
  51. package/dist/cjs/emotion/components/internal/dummy-input.js +1 -0
  52. package/dist/cjs/emotion/components/internal/required-input.js +2 -0
  53. package/dist/cjs/emotion/components/internal/scroll-manager.js +2 -0
  54. package/dist/cjs/emotion/components/live-region.js +1 -1
  55. package/dist/cjs/emotion/components/menu.js +1 -1
  56. package/dist/cjs/emotion/components/multi-value.js +1 -1
  57. package/dist/cjs/emotion/components/option.js +2 -0
  58. package/dist/cjs/emotion/components/placeholder.js +2 -0
  59. package/dist/cjs/emotion/components/single-value.js +2 -0
  60. package/dist/cjs/utils.js +2 -1
  61. package/dist/es2019/compiled/components/containers.compiled.css +26 -0
  62. package/dist/es2019/compiled/components/containers.js +115 -0
  63. package/dist/es2019/compiled/components/control.compiled.css +51 -0
  64. package/dist/es2019/compiled/components/control.js +58 -0
  65. package/dist/es2019/compiled/components/group.compiled.css +12 -0
  66. package/dist/es2019/compiled/components/group.js +72 -0
  67. package/dist/es2019/compiled/components/indicators.compiled.css +24 -0
  68. package/dist/es2019/compiled/components/indicators.js +144 -0
  69. package/dist/es2019/compiled/components/input.compiled.css +49 -0
  70. package/dist/es2019/compiled/components/input.js +59 -0
  71. package/dist/es2019/compiled/components/internal/a11y-text.compiled.css +15 -0
  72. package/dist/es2019/compiled/components/internal/a11y-text.js +11 -0
  73. package/dist/es2019/compiled/components/internal/dummy-input.compiled.css +17 -0
  74. package/dist/es2019/compiled/components/internal/dummy-input.js +19 -0
  75. package/dist/es2019/compiled/components/internal/required-input.compiled.css +8 -0
  76. package/dist/es2019/compiled/components/internal/required-input.js +23 -0
  77. package/dist/es2019/compiled/components/live-region.js +171 -0
  78. package/dist/es2019/compiled/components/menu.compiled.css +19 -0
  79. package/dist/es2019/compiled/components/menu.js +478 -0
  80. package/dist/es2019/compiled/components/multi-value.compiled.css +56 -0
  81. package/dist/es2019/compiled/components/multi-value.js +190 -0
  82. package/dist/es2019/compiled/components/option.compiled.css +22 -0
  83. package/dist/es2019/compiled/components/option.js +48 -0
  84. package/dist/es2019/compiled/components/placeholder.compiled.css +7 -0
  85. package/dist/es2019/compiled/components/placeholder.js +36 -0
  86. package/dist/es2019/compiled/components/single-value.compiled.css +13 -0
  87. package/dist/es2019/compiled/components/single-value.js +37 -0
  88. package/dist/es2019/components/containers.js +10 -87
  89. package/dist/es2019/components/control.js +8 -103
  90. package/dist/es2019/components/group.js +9 -54
  91. package/dist/es2019/components/indicators.js +11 -113
  92. package/dist/es2019/components/input.js +7 -83
  93. package/dist/es2019/components/internal/a11y-text.js +6 -26
  94. package/dist/es2019/components/internal/dummy-input.js +7 -36
  95. package/dist/es2019/components/internal/notify-open-layer-observer.js +1 -0
  96. package/dist/es2019/components/internal/required-input.js +6 -32
  97. package/dist/es2019/components/internal/scroll-manager.js +16 -16
  98. package/dist/es2019/components/live-region.js +5 -168
  99. package/dist/es2019/components/menu.js +14 -412
  100. package/dist/es2019/components/multi-value.js +12 -216
  101. package/dist/es2019/components/option.js +7 -75
  102. package/dist/es2019/components/placeholder.js +7 -25
  103. package/dist/es2019/components/single-value.js +7 -31
  104. package/dist/es2019/emotion/components/containers.js +1 -0
  105. package/dist/es2019/emotion/components/control.js +1 -0
  106. package/dist/es2019/emotion/components/group.js +1 -0
  107. package/dist/es2019/emotion/components/indicators.js +1 -0
  108. package/dist/es2019/emotion/components/input.js +1 -0
  109. package/dist/es2019/emotion/components/internal/a11y-text.js +1 -0
  110. package/dist/es2019/emotion/components/internal/dummy-input.js +1 -0
  111. package/dist/es2019/emotion/components/internal/required-input.js +1 -0
  112. package/dist/es2019/emotion/components/internal/scroll-manager.js +2 -0
  113. package/dist/es2019/emotion/components/live-region.js +2 -0
  114. package/dist/es2019/emotion/components/menu.js +2 -0
  115. package/dist/es2019/emotion/components/multi-value.js +1 -0
  116. package/dist/es2019/emotion/components/option.js +1 -0
  117. package/dist/es2019/emotion/components/placeholder.js +1 -0
  118. package/dist/es2019/emotion/components/single-value.js +1 -0
  119. package/dist/es2019/utils.js +1 -0
  120. package/dist/esm/compiled/components/containers.compiled.css +26 -0
  121. package/dist/esm/compiled/components/containers.js +110 -0
  122. package/dist/esm/compiled/components/control.compiled.css +51 -0
  123. package/dist/esm/compiled/components/control.js +57 -0
  124. package/dist/esm/compiled/components/group.compiled.css +12 -0
  125. package/dist/esm/compiled/components/group.js +71 -0
  126. package/dist/esm/compiled/components/indicators.compiled.css +24 -0
  127. package/dist/esm/compiled/components/indicators.js +148 -0
  128. package/dist/esm/compiled/components/input.compiled.css +49 -0
  129. package/dist/esm/compiled/components/input.js +59 -0
  130. package/dist/esm/compiled/components/internal/a11y-text.compiled.css +15 -0
  131. package/dist/esm/compiled/components/internal/a11y-text.js +13 -0
  132. package/dist/esm/compiled/components/internal/dummy-input.compiled.css +17 -0
  133. package/dist/esm/compiled/components/internal/dummy-input.js +20 -0
  134. package/dist/esm/compiled/components/internal/required-input.compiled.css +8 -0
  135. package/dist/esm/compiled/components/internal/required-input.js +24 -0
  136. package/dist/esm/compiled/components/live-region.js +168 -0
  137. package/dist/esm/compiled/components/menu.compiled.css +19 -0
  138. package/dist/esm/compiled/components/menu.js +485 -0
  139. package/dist/esm/compiled/components/multi-value.compiled.css +56 -0
  140. package/dist/esm/compiled/components/multi-value.js +187 -0
  141. package/dist/esm/compiled/components/option.compiled.css +22 -0
  142. package/dist/esm/compiled/components/option.js +47 -0
  143. package/dist/esm/compiled/components/placeholder.compiled.css +7 -0
  144. package/dist/esm/compiled/components/placeholder.js +35 -0
  145. package/dist/esm/compiled/components/single-value.compiled.css +13 -0
  146. package/dist/esm/compiled/components/single-value.js +36 -0
  147. package/dist/esm/components/containers.js +12 -73
  148. package/dist/esm/components/control.js +8 -97
  149. package/dist/esm/components/group.js +11 -54
  150. package/dist/esm/components/indicators.js +15 -109
  151. package/dist/esm/components/input.js +8 -83
  152. package/dist/esm/components/internal/a11y-text.js +6 -26
  153. package/dist/esm/components/internal/dummy-input.js +7 -37
  154. package/dist/esm/components/internal/notify-open-layer-observer.js +1 -0
  155. package/dist/esm/components/internal/required-input.js +7 -32
  156. package/dist/esm/components/internal/scroll-manager.js +16 -16
  157. package/dist/esm/components/live-region.js +5 -163
  158. package/dist/esm/components/menu.js +21 -401
  159. package/dist/esm/components/multi-value.js +17 -199
  160. package/dist/esm/components/option.js +8 -69
  161. package/dist/esm/components/placeholder.js +8 -21
  162. package/dist/esm/components/single-value.js +8 -27
  163. package/dist/esm/emotion/components/containers.js +1 -0
  164. package/dist/esm/emotion/components/control.js +1 -0
  165. package/dist/esm/emotion/components/group.js +1 -0
  166. package/dist/esm/emotion/components/indicators.js +1 -0
  167. package/dist/esm/emotion/components/input.js +1 -0
  168. package/dist/esm/emotion/components/internal/a11y-text.js +1 -0
  169. package/dist/esm/emotion/components/internal/dummy-input.js +1 -0
  170. package/dist/esm/emotion/components/internal/required-input.js +1 -0
  171. package/dist/esm/emotion/components/internal/scroll-manager.js +2 -0
  172. package/dist/esm/emotion/components/live-region.js +2 -0
  173. package/dist/esm/emotion/components/menu.js +2 -0
  174. package/dist/esm/emotion/components/multi-value.js +1 -0
  175. package/dist/esm/emotion/components/option.js +1 -0
  176. package/dist/esm/emotion/components/placeholder.js +1 -0
  177. package/dist/esm/emotion/components/single-value.js +1 -0
  178. package/dist/esm/utils.js +2 -1
  179. package/dist/types/compiled/components/containers.d.ts +53 -0
  180. package/dist/types/compiled/components/control.d.ts +41 -0
  181. package/dist/types/compiled/components/group.d.ts +54 -0
  182. package/dist/types/compiled/components/indicators.d.ts +72 -0
  183. package/dist/types/compiled/components/input.d.ts +36 -0
  184. package/dist/types/compiled/components/internal/a11y-text.d.ts +3 -0
  185. package/dist/types/compiled/components/internal/dummy-input.d.ts +8 -0
  186. package/dist/types/compiled/components/internal/required-input.d.ts +10 -0
  187. package/dist/types/compiled/components/live-region.d.ts +19 -0
  188. package/dist/types/compiled/components/menu.d.ts +115 -0
  189. package/dist/types/compiled/components/multi-value.d.ts +57 -0
  190. package/dist/types/compiled/components/option.d.ts +48 -0
  191. package/dist/types/compiled/components/placeholder.d.ts +21 -0
  192. package/dist/types/compiled/components/single-value.d.ts +27 -0
  193. package/dist/types/components/containers.d.ts +6 -11
  194. package/dist/types/components/control.d.ts +4 -9
  195. package/dist/types/components/group.d.ts +8 -10
  196. package/dist/types/components/index.d.ts +21 -21
  197. package/dist/types/components/indicators.d.ts +7 -12
  198. package/dist/types/components/input.d.ts +3 -8
  199. package/dist/types/components/internal/a11y-text.d.ts +2 -7
  200. package/dist/types/components/internal/dummy-input.d.ts +3 -8
  201. package/dist/types/components/internal/required-input.d.ts +0 -4
  202. package/dist/types/components/internal/scroll-manager.d.ts +2 -7
  203. package/dist/types/components/live-region.d.ts +2 -8
  204. package/dist/types/components/menu.d.ts +10 -15
  205. package/dist/types/components/multi-value.d.ts +19 -13
  206. package/dist/types/components/option.d.ts +3 -8
  207. package/dist/types/components/placeholder.d.ts +3 -8
  208. package/dist/types/components/single-value.d.ts +3 -8
  209. package/dist/types/select.d.ts +21 -21
  210. package/dist/types/types.d.ts +3 -0
  211. package/dist/types-ts4.5/compiled/components/containers.d.ts +53 -0
  212. package/dist/types-ts4.5/compiled/components/control.d.ts +41 -0
  213. package/dist/types-ts4.5/compiled/components/group.d.ts +54 -0
  214. package/dist/types-ts4.5/compiled/components/indicators.d.ts +72 -0
  215. package/dist/types-ts4.5/compiled/components/input.d.ts +36 -0
  216. package/dist/types-ts4.5/compiled/components/internal/a11y-text.d.ts +3 -0
  217. package/dist/types-ts4.5/compiled/components/internal/dummy-input.d.ts +8 -0
  218. package/dist/types-ts4.5/compiled/components/internal/required-input.d.ts +10 -0
  219. package/dist/types-ts4.5/compiled/components/live-region.d.ts +19 -0
  220. package/dist/types-ts4.5/compiled/components/menu.d.ts +115 -0
  221. package/dist/types-ts4.5/compiled/components/multi-value.d.ts +57 -0
  222. package/dist/types-ts4.5/compiled/components/option.d.ts +48 -0
  223. package/dist/types-ts4.5/compiled/components/placeholder.d.ts +21 -0
  224. package/dist/types-ts4.5/compiled/components/single-value.d.ts +27 -0
  225. package/dist/types-ts4.5/components/containers.d.ts +6 -11
  226. package/dist/types-ts4.5/components/control.d.ts +4 -9
  227. package/dist/types-ts4.5/components/group.d.ts +8 -10
  228. package/dist/types-ts4.5/components/index.d.ts +21 -21
  229. package/dist/types-ts4.5/components/indicators.d.ts +7 -12
  230. package/dist/types-ts4.5/components/input.d.ts +3 -8
  231. package/dist/types-ts4.5/components/internal/a11y-text.d.ts +2 -7
  232. package/dist/types-ts4.5/components/internal/dummy-input.d.ts +3 -8
  233. package/dist/types-ts4.5/components/internal/required-input.d.ts +0 -4
  234. package/dist/types-ts4.5/components/internal/scroll-manager.d.ts +2 -7
  235. package/dist/types-ts4.5/components/live-region.d.ts +2 -8
  236. package/dist/types-ts4.5/components/menu.d.ts +10 -15
  237. package/dist/types-ts4.5/components/multi-value.d.ts +19 -13
  238. package/dist/types-ts4.5/components/option.d.ts +3 -8
  239. package/dist/types-ts4.5/components/placeholder.d.ts +3 -8
  240. package/dist/types-ts4.5/components/single-value.d.ts +3 -8
  241. package/dist/types-ts4.5/select.d.ts +21 -21
  242. package/dist/types-ts4.5/types.d.ts +3 -0
  243. package/package.json +11 -3
  244. package/dist/cjs/emotion/components/index.js +0 -52
  245. package/dist/cjs/emotion/components/internal/notify-open-layer-observer.js +0 -21
  246. package/dist/es2019/emotion/components/index.js +0 -41
  247. package/dist/es2019/emotion/components/internal/notify-open-layer-observer.js +0 -16
  248. package/dist/esm/emotion/components/index.js +0 -43
  249. package/dist/esm/emotion/components/internal/notify-open-layer-observer.js +0 -15
  250. package/dist/types/emotion/components/index.d.ts +0 -67
  251. package/dist/types/emotion/components/internal/notify-open-layer-observer.d.ts +0 -11
  252. package/dist/types-ts4.5/emotion/components/index.d.ts +0 -67
  253. package/dist/types-ts4.5/emotion/components/internal/notify-open-layer-observer.d.ts +0 -11
@@ -0,0 +1,24 @@
1
+ /* required-input.tsx generated by @compiled/babel-plugin v0.36.1 */
2
+ import "./required-input.compiled.css";
3
+ import * as React from 'react';
4
+ import { ax, ix } from "@compiled/react/runtime";
5
+ import __noop from '@atlaskit/ds-lib/noop';
6
+ var styles = null;
7
+ var RequiredInput = function RequiredInput(_ref) {
8
+ var name = _ref.name,
9
+ onFocus = _ref.onFocus;
10
+ return /*#__PURE__*/React.createElement("input", {
11
+ required: true,
12
+ name: name,
13
+ tabIndex: -1,
14
+ "aria-hidden": "true",
15
+ onFocus: onFocus,
16
+ // Prevent `Switching from uncontrolled to controlled` error
17
+ value: "",
18
+ onChange: __noop,
19
+ className: ax(["_1bsb1osq _kqswstnw _u7coidpf _rjxpidpf _1e02idpf _jqf61a21 _tzy4idpf _lcxvglyw"])
20
+ });
21
+ };
22
+
23
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
24
+ export default RequiredInput;
@@ -0,0 +1,168 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ import React, { Fragment, useMemo, useRef } from 'react';
5
+ import { fg } from '@atlaskit/platform-feature-flags';
6
+ import { defaultAriaLiveMessages } from '../../accessibility';
7
+ import A11yText from './internal/a11y-text';
8
+
9
+ // ==============================
10
+ // Root Container
11
+ // ==============================
12
+
13
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
14
+ var LiveRegion = function LiveRegion(props) {
15
+ var ariaSelection = props.ariaSelection,
16
+ focusedOption = props.focusedOption,
17
+ focusedValue = props.focusedValue,
18
+ focusableOptions = props.focusableOptions,
19
+ isFocused = props.isFocused,
20
+ selectValue = props.selectValue,
21
+ selectProps = props.selectProps,
22
+ id = props.id,
23
+ isAppleDevice = props.isAppleDevice;
24
+ var ariaLiveMessages = selectProps.ariaLiveMessages,
25
+ getOptionLabel = selectProps.getOptionLabel,
26
+ inputValue = selectProps.inputValue,
27
+ isMulti = selectProps.isMulti,
28
+ isOptionDisabled = selectProps.isOptionDisabled,
29
+ isSearchable = selectProps.isSearchable,
30
+ label = selectProps.label,
31
+ menuIsOpen = selectProps.menuIsOpen,
32
+ options = selectProps.options,
33
+ screenReaderStatus = selectProps.screenReaderStatus,
34
+ tabSelectsValue = selectProps.tabSelectsValue,
35
+ isLoading = selectProps.isLoading;
36
+ var ariaLabel = selectProps['aria-label'] || label;
37
+ var ariaLive = selectProps['aria-live'];
38
+
39
+ // for safari, we will use minimum support from aria-live region
40
+ var isA11yImprovementEnabled = fg('design_system_select-a11y-improvement') && !isAppleDevice;
41
+
42
+ // Update aria live message configuration when prop changes
43
+ var messages = useMemo(function () {
44
+ return _objectSpread(_objectSpread({}, defaultAriaLiveMessages), ariaLiveMessages || {});
45
+ }, [ariaLiveMessages]);
46
+
47
+ // Update aria live selected option when prop changes
48
+ var ariaSelected = useMemo(function () {
49
+ var message = '';
50
+ if (isA11yImprovementEnabled && menuIsOpen) {
51
+ // we don't need to have selected message when the menu is open
52
+ return '';
53
+ }
54
+ if (ariaSelection && messages.onChange) {
55
+ var option = ariaSelection.option,
56
+ selectedOptions = ariaSelection.options,
57
+ removedValue = ariaSelection.removedValue,
58
+ removedValues = ariaSelection.removedValues,
59
+ value = ariaSelection.value;
60
+ // select-option when !isMulti does not return option so we assume selected option is value
61
+ var asOption = function asOption(val) {
62
+ return !Array.isArray(val) ? val : null;
63
+ };
64
+
65
+ // If there is just one item from the action then get its label
66
+ var selected = removedValue || option || asOption(value);
67
+ var _label = selected ? getOptionLabel(selected) : '';
68
+
69
+ // If there are multiple items from the action then return an array of labels
70
+ var multiSelected = selectedOptions || removedValues || undefined;
71
+ var labels = multiSelected ? multiSelected.map(getOptionLabel) : [];
72
+ if (isA11yImprovementEnabled && !_label && !labels.length) {
73
+ // return empty string if no labels provided
74
+ return '';
75
+ }
76
+ var onChangeProps = _objectSpread({
77
+ // multiSelected items are usually items that have already been selected
78
+ // or set by the user as a default value so we assume they are not disabled
79
+ isDisabled: selected && isOptionDisabled(selected, selectValue),
80
+ label: _label,
81
+ labels: labels
82
+ }, ariaSelection);
83
+ message = messages.onChange(onChangeProps);
84
+ }
85
+ return message;
86
+ }, [ariaSelection, messages, isOptionDisabled, selectValue, getOptionLabel, isA11yImprovementEnabled, menuIsOpen]);
87
+ var prevInputValue = useRef('');
88
+ var ariaFocused = useMemo(function () {
89
+ var focusMsg = '';
90
+ var focused = focusedOption || focusedValue;
91
+ var isSelected = !!(focusedOption && selectValue && selectValue.includes(focusedOption));
92
+ if (inputValue === prevInputValue.current && isA11yImprovementEnabled) {
93
+ // only announce focus option when searching when ff is on and the input value changed
94
+ // for safari, we will announce for all
95
+ return '';
96
+ }
97
+ if (focused && messages.onFocus) {
98
+ var onFocusProps = {
99
+ focused: focused,
100
+ label: getOptionLabel(focused),
101
+ isDisabled: isOptionDisabled(focused, selectValue),
102
+ isSelected: isSelected,
103
+ options: focusableOptions,
104
+ context: focused === focusedOption ? 'menu' : 'value',
105
+ selectValue: selectValue,
106
+ isMulti: isMulti
107
+ };
108
+ focusMsg = messages.onFocus(onFocusProps);
109
+ }
110
+ prevInputValue.current = inputValue;
111
+ return focusMsg;
112
+ }, [inputValue, focusedOption, focusedValue, getOptionLabel, isOptionDisabled, messages, focusableOptions, selectValue, isA11yImprovementEnabled, isMulti]);
113
+ var ariaResults = useMemo(function () {
114
+ var resultsMsg = '';
115
+ if (menuIsOpen && options.length && !isLoading && messages.onFilter) {
116
+ var resultsMessage = screenReaderStatus({
117
+ count: focusableOptions.length
118
+ });
119
+ resultsMsg = messages.onFilter({
120
+ inputValue: inputValue,
121
+ resultsMessage: resultsMessage
122
+ });
123
+ }
124
+ return resultsMsg;
125
+ }, [focusableOptions, inputValue, menuIsOpen, messages, options, screenReaderStatus, isLoading]);
126
+ var isInitialFocus = (ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus';
127
+ var ariaGuidance = useMemo(function () {
128
+ if (fg('design_system_select-a11y-improvement')) {
129
+ // don't announce guidance at all when ff is on
130
+ return '';
131
+ }
132
+ var guidanceMsg = '';
133
+ if (messages.guidance) {
134
+ var context = focusedValue ? 'value' : menuIsOpen ? 'menu' : 'input';
135
+ guidanceMsg = messages.guidance({
136
+ 'aria-label': ariaLabel,
137
+ context: context,
138
+ isDisabled: focusedOption && isOptionDisabled(focusedOption, selectValue),
139
+ isMulti: isMulti,
140
+ isSearchable: isSearchable,
141
+ tabSelectsValue: tabSelectsValue,
142
+ isInitialFocus: isInitialFocus
143
+ });
144
+ }
145
+ return guidanceMsg;
146
+ }, [ariaLabel, focusedOption, focusedValue, isMulti, isOptionDisabled, isSearchable, menuIsOpen, messages, selectValue, tabSelectsValue, isInitialFocus]);
147
+ var ScreenReaderText = /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement("span", {
148
+ id: "aria-selection"
149
+ }, ariaSelected), /*#__PURE__*/React.createElement("span", {
150
+ id: "aria-results"
151
+ }, ariaResults), !fg('design_system_select-a11y-improvement') && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", {
152
+ id: "aria-focused"
153
+ }, ariaFocused), /*#__PURE__*/React.createElement("span", {
154
+ id: "aria-guidance"
155
+ }, ariaGuidance)));
156
+ return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(A11yText, {
157
+ id: id
158
+ }, isInitialFocus && ScreenReaderText), /*#__PURE__*/React.createElement(A11yText, {
159
+ "aria-live": ariaLive // Should be undefined by default unless a specific use case requires it
160
+ ,
161
+ "aria-atomic": fg('design_system_select-a11y-improvement') ? undefined : 'false',
162
+ "aria-relevant": fg('design_system_select-a11y-improvement') ? undefined : 'additions text',
163
+ role: fg('design_system_select-a11y-improvement') ? 'status' : 'log'
164
+ }, isFocused && !isInitialFocus && ScreenReaderText));
165
+ };
166
+
167
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
168
+ export default LiveRegion;
@@ -0,0 +1,19 @@
1
+
2
+ ._2rkoglpi{border-radius:var(--ds-border-radius,4px)}._154i1osq{top:100%}
3
+ ._16qsd0yg{box-shadow:var(--ds-shadow-overlay,0 0 0 1px rgba(0,0,0,.1),0 4px 11px rgba(0,0,0,.1))}
4
+ ._18m91wug{overflow-y:auto}
5
+ ._19pku2gc{margin-top:var(--ds-space-100,8px)}
6
+ ._1bsb1osq{width:100%}
7
+ ._1pbykb7n{z-index:1}
8
+ ._1q51u2gc{padding-block-start:var(--ds-space-100,8px)}
9
+ ._85i5u2gc{padding-block-end:var(--ds-space-100,8px)}
10
+ ._8am5i4x0{-webkit-overflow-scrolling:touch}
11
+ ._94n51osq{bottom:100%}
12
+ ._bfhk1bhr{background-color:var(--ds-surface-overlay,#fff)}
13
+ ._bozgutpp{padding-inline-start:var(--ds-space-150,9pt)}
14
+ ._jqf689mz{label:menu}
15
+ ._kqswh2mm{position:relative}
16
+ ._kqswstnw{position:absolute}
17
+ ._otyru2gc{margin-bottom:var(--ds-space-100,8px)}
18
+ ._y3gn1h6o{text-align:center}
19
+ ._y4tiutpp{padding-inline-end:var(--ds-space-150,9pt)}