@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
@@ -1,181 +1,23 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
- var _react = _interopRequireWildcard(require("react"));
11
- var _react2 = require("@emotion/react");
8
+ var _react = _interopRequireDefault(require("react"));
12
9
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
13
- var _accessibility = require("../accessibility");
14
- var _a11yText = _interopRequireDefault(require("./internal/a11y-text"));
15
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
16
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
- 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; }
18
- 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) { (0, _defineProperty2.default)(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; } /* eslint-disable @atlaskit/platform/ensure-feature-flag-prefix */ /**
19
- * @jsxRuntime classic
20
- * @jsx jsx
21
- * @jsxFrag React.Fragment
22
- */
10
+ var _liveRegion = _interopRequireDefault(require("../compiled/components/live-region"));
11
+ var _liveRegion2 = _interopRequireDefault(require("../emotion/components/live-region"));
12
+ /* eslint-disable @repo/internal/react/no-unsafe-spread-props */
13
+
23
14
  // ==============================
24
15
  // Root Container
25
16
  // ==============================
26
17
 
27
18
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
28
19
  var LiveRegion = function LiveRegion(props) {
29
- var ariaSelection = props.ariaSelection,
30
- focusedOption = props.focusedOption,
31
- focusedValue = props.focusedValue,
32
- focusableOptions = props.focusableOptions,
33
- isFocused = props.isFocused,
34
- selectValue = props.selectValue,
35
- selectProps = props.selectProps,
36
- id = props.id,
37
- isAppleDevice = props.isAppleDevice;
38
- var ariaLiveMessages = selectProps.ariaLiveMessages,
39
- getOptionLabel = selectProps.getOptionLabel,
40
- inputValue = selectProps.inputValue,
41
- isMulti = selectProps.isMulti,
42
- isOptionDisabled = selectProps.isOptionDisabled,
43
- isSearchable = selectProps.isSearchable,
44
- label = selectProps.label,
45
- menuIsOpen = selectProps.menuIsOpen,
46
- options = selectProps.options,
47
- screenReaderStatus = selectProps.screenReaderStatus,
48
- tabSelectsValue = selectProps.tabSelectsValue,
49
- isLoading = selectProps.isLoading;
50
- var ariaLabel = selectProps['aria-label'] || label;
51
- var ariaLive = selectProps['aria-live'];
52
-
53
- // for safari, we will use minimum support from aria-live region
54
- var isA11yImprovementEnabled = (0, _platformFeatureFlags.fg)('design_system_select-a11y-improvement') && !isAppleDevice;
55
-
56
- // Update aria live message configuration when prop changes
57
- var messages = (0, _react.useMemo)(function () {
58
- return _objectSpread(_objectSpread({}, _accessibility.defaultAriaLiveMessages), ariaLiveMessages || {});
59
- }, [ariaLiveMessages]);
60
-
61
- // Update aria live selected option when prop changes
62
- var ariaSelected = (0, _react.useMemo)(function () {
63
- var message = '';
64
- if (isA11yImprovementEnabled && menuIsOpen) {
65
- // we don't need to have selected message when the menu is open
66
- return '';
67
- }
68
- if (ariaSelection && messages.onChange) {
69
- var option = ariaSelection.option,
70
- selectedOptions = ariaSelection.options,
71
- removedValue = ariaSelection.removedValue,
72
- removedValues = ariaSelection.removedValues,
73
- value = ariaSelection.value;
74
- // select-option when !isMulti does not return option so we assume selected option is value
75
- var asOption = function asOption(val) {
76
- return !Array.isArray(val) ? val : null;
77
- };
78
-
79
- // If there is just one item from the action then get its label
80
- var selected = removedValue || option || asOption(value);
81
- var _label = selected ? getOptionLabel(selected) : '';
82
-
83
- // If there are multiple items from the action then return an array of labels
84
- var multiSelected = selectedOptions || removedValues || undefined;
85
- var labels = multiSelected ? multiSelected.map(getOptionLabel) : [];
86
- if (isA11yImprovementEnabled && !_label && !labels.length) {
87
- // return empty string if no labels provided
88
- return '';
89
- }
90
- var onChangeProps = _objectSpread({
91
- // multiSelected items are usually items that have already been selected
92
- // or set by the user as a default value so we assume they are not disabled
93
- isDisabled: selected && isOptionDisabled(selected, selectValue),
94
- label: _label,
95
- labels: labels
96
- }, ariaSelection);
97
- message = messages.onChange(onChangeProps);
98
- }
99
- return message;
100
- }, [ariaSelection, messages, isOptionDisabled, selectValue, getOptionLabel, isA11yImprovementEnabled, menuIsOpen]);
101
- var prevInputValue = (0, _react.useRef)('');
102
- var ariaFocused = (0, _react.useMemo)(function () {
103
- var focusMsg = '';
104
- var focused = focusedOption || focusedValue;
105
- var isSelected = !!(focusedOption && selectValue && selectValue.includes(focusedOption));
106
- if (inputValue === prevInputValue.current && isA11yImprovementEnabled) {
107
- // only announce focus option when searching when ff is on and the input value changed
108
- // for safari, we will announce for all
109
- return '';
110
- }
111
- if (focused && messages.onFocus) {
112
- var onFocusProps = {
113
- focused: focused,
114
- label: getOptionLabel(focused),
115
- isDisabled: isOptionDisabled(focused, selectValue),
116
- isSelected: isSelected,
117
- options: focusableOptions,
118
- context: focused === focusedOption ? 'menu' : 'value',
119
- selectValue: selectValue,
120
- isMulti: isMulti
121
- };
122
- focusMsg = messages.onFocus(onFocusProps);
123
- }
124
- prevInputValue.current = inputValue;
125
- return focusMsg;
126
- }, [inputValue, focusedOption, focusedValue, getOptionLabel, isOptionDisabled, messages, focusableOptions, selectValue, isA11yImprovementEnabled, isMulti]);
127
- var ariaResults = (0, _react.useMemo)(function () {
128
- var resultsMsg = '';
129
- if (menuIsOpen && options.length && !isLoading && messages.onFilter) {
130
- var resultsMessage = screenReaderStatus({
131
- count: focusableOptions.length
132
- });
133
- resultsMsg = messages.onFilter({
134
- inputValue: inputValue,
135
- resultsMessage: resultsMessage
136
- });
137
- }
138
- return resultsMsg;
139
- }, [focusableOptions, inputValue, menuIsOpen, messages, options, screenReaderStatus, isLoading]);
140
- var isInitialFocus = (ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus';
141
- var ariaGuidance = (0, _react.useMemo)(function () {
142
- if ((0, _platformFeatureFlags.fg)('design_system_select-a11y-improvement')) {
143
- // don't announce guidance at all when ff is on
144
- return '';
145
- }
146
- var guidanceMsg = '';
147
- if (messages.guidance) {
148
- var context = focusedValue ? 'value' : menuIsOpen ? 'menu' : 'input';
149
- guidanceMsg = messages.guidance({
150
- 'aria-label': ariaLabel,
151
- context: context,
152
- isDisabled: focusedOption && isOptionDisabled(focusedOption, selectValue),
153
- isMulti: isMulti,
154
- isSearchable: isSearchable,
155
- tabSelectsValue: tabSelectsValue,
156
- isInitialFocus: isInitialFocus
157
- });
158
- }
159
- return guidanceMsg;
160
- }, [ariaLabel, focusedOption, focusedValue, isMulti, isOptionDisabled, isSearchable, menuIsOpen, messages, selectValue, tabSelectsValue, isInitialFocus]);
161
- var ScreenReaderText = (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)("span", {
162
- id: "aria-selection"
163
- }, ariaSelected), (0, _react2.jsx)("span", {
164
- id: "aria-results"
165
- }, ariaResults), !(0, _platformFeatureFlags.fg)('design_system_select-a11y-improvement') && (0, _react2.jsx)(_react.default.Fragment, null, (0, _react2.jsx)("span", {
166
- id: "aria-focused"
167
- }, ariaFocused), (0, _react2.jsx)("span", {
168
- id: "aria-guidance"
169
- }, ariaGuidance)));
170
- return (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(_a11yText.default, {
171
- id: id
172
- }, isInitialFocus && ScreenReaderText), (0, _react2.jsx)(_a11yText.default, {
173
- "aria-live": ariaLive // Should be undefined by default unless a specific use case requires it
174
- ,
175
- "aria-atomic": (0, _platformFeatureFlags.fg)('design_system_select-a11y-improvement') ? undefined : 'false',
176
- "aria-relevant": (0, _platformFeatureFlags.fg)('design_system_select-a11y-improvement') ? undefined : 'additions text',
177
- role: (0, _platformFeatureFlags.fg)('design_system_select-a11y-improvement') ? 'status' : 'log'
178
- }, isFocused && !isInitialFocus && ScreenReaderText));
20
+ return (0, _platformFeatureFlags.fg)('compiled-react-select') ? /*#__PURE__*/_react.default.createElement(_liveRegion.default, props) : /*#__PURE__*/_react.default.createElement(_liveRegion2.default, props);
179
21
  };
180
22
 
181
23
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
@@ -1,318 +1,55 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.noOptionsMessageCSS = exports.menuPortalCSS = exports.menuListCSS = exports.menuCSS = exports.loadingMessageCSS = exports.default = exports.NoOptionsMessage = exports.MenuPortal = exports.MenuPlacer = exports.MenuList = exports.LoadingMessage = void 0;
8
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
9
9
  var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty"));
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
- var _react = require("react");
14
- var _react2 = require("@emotion/react");
15
- var _dom = require("@floating-ui/dom");
16
- var _reactDom = require("react-dom");
17
- var _useIsomorphicLayoutEffect = _interopRequireDefault(require("use-isomorphic-layout-effect"));
10
+ var _react = _interopRequireDefault(require("react"));
18
11
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
19
- var _primitives = require("@atlaskit/primitives");
20
- var _utils = require("../utils");
21
- var _excluded = ["children", "innerProps"],
22
- _excluded2 = ["children", "innerProps"];
23
- 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; }
24
- 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) { (0, _defineProperty2.default)(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; } /**
25
- * @jsxRuntime classic
26
- * @jsx jsx
27
- */
28
- // ==============================
29
- // Menu
30
- // ==============================
31
-
32
- // Get Menu Placement
33
- // ------------------------------
34
-
35
- function getMenuPlacement(_ref) {
36
- var preferredMaxHeight = _ref.maxHeight,
37
- menuEl = _ref.menuEl,
38
- minHeight = _ref.minHeight,
39
- preferredPlacement = _ref.placement,
40
- shouldScroll = _ref.shouldScroll,
41
- isFixedPosition = _ref.isFixedPosition,
42
- controlHeight = _ref.controlHeight;
43
- var scrollParent = (0, _utils.getScrollParent)(menuEl);
44
- var defaultState = {
45
- placement: 'bottom',
46
- maxHeight: preferredMaxHeight
47
- };
48
-
49
- // something went wrong, return default state
50
- if (!menuEl || !menuEl.offsetParent) {
51
- return defaultState;
52
- }
53
-
54
- // we can't trust `scrollParent.scrollHeight` --> it may increase when
55
- // the menu is rendered
56
- var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),
57
- scrollHeight = _scrollParent$getBoun.height,
58
- scrollParentTop = _scrollParent$getBoun.top;
59
- var _menuEl$getBoundingCl = menuEl.getBoundingClientRect(),
60
- menuBottom = _menuEl$getBoundingCl.bottom,
61
- menuHeight = _menuEl$getBoundingCl.height,
62
- menuTop = _menuEl$getBoundingCl.top;
63
- var _menuEl$offsetParent$ = menuEl.offsetParent.getBoundingClientRect(),
64
- containerTop = _menuEl$offsetParent$.top;
65
- var viewHeight = isFixedPosition ? window.innerHeight : (0, _utils.normalizedHeight)(scrollParent);
66
- var scrollTop = (0, _utils.getScrollTop)(scrollParent);
67
- // use menuTop - scrollParentTop for the actual top space of menu in the scroll container
68
- var menuTopFromParent = (0, _platformFeatureFlags.fg)('design-system-select-fix-placement') ? menuTop - scrollParentTop : menuTop;
69
- var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);
70
- var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);
71
- var viewSpaceAbove = containerTop - marginTop;
72
- var viewSpaceBelow = viewHeight - menuTopFromParent;
73
- var scrollSpaceAbove = viewSpaceAbove + scrollTop;
74
- var scrollSpaceBelow = scrollHeight - scrollTop - menuTopFromParent;
75
- var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;
76
- var scrollUp = scrollTop + menuTop - marginTop;
77
- var scrollDuration = 160;
78
- switch (preferredPlacement) {
79
- case 'auto':
80
- case 'bottom':
81
- // 1: the menu will fit, do nothing
82
- if (viewSpaceBelow >= menuHeight) {
83
- return {
84
- placement: 'bottom',
85
- maxHeight: preferredMaxHeight
86
- };
87
- }
88
-
89
- // 2: the menu will fit, if scrolled
90
- if (scrollSpaceBelow >= menuHeight && !isFixedPosition) {
91
- if (shouldScroll) {
92
- (0, _utils.animatedScrollTo)(scrollParent, scrollDown, scrollDuration);
93
- }
94
- return {
95
- placement: 'bottom',
96
- maxHeight: preferredMaxHeight
97
- };
98
- }
99
-
100
- // 3: the menu will fit, if constrained
101
- if (!isFixedPosition && scrollSpaceBelow >= minHeight || isFixedPosition && viewSpaceBelow >= minHeight) {
102
- if (shouldScroll) {
103
- (0, _utils.animatedScrollTo)(scrollParent, scrollDown, scrollDuration);
104
- }
105
-
106
- // we want to provide as much of the menu as possible to the user,
107
- // so give them whatever is available below rather than the minHeight.
108
- var constrainedHeight = isFixedPosition ? viewSpaceBelow - marginBottom : scrollSpaceBelow - marginBottom;
109
- return {
110
- placement: 'bottom',
111
- maxHeight: constrainedHeight
112
- };
113
- }
114
-
115
- // 4. Forked beviour when there isn't enough space below
116
-
117
- // AUTO: flip the menu, render above
118
- if (preferredPlacement === 'auto' || isFixedPosition) {
119
- // may need to be constrained after flipping
120
- var _constrainedHeight = preferredMaxHeight;
121
- var spaceAbove = isFixedPosition ? viewSpaceAbove : scrollSpaceAbove;
122
- if (spaceAbove >= minHeight) {
123
- _constrainedHeight = Math.min(spaceAbove - marginBottom - controlHeight, preferredMaxHeight);
124
- }
125
- return {
126
- placement: 'top',
127
- maxHeight: _constrainedHeight
128
- };
129
- }
130
-
131
- // BOTTOM: allow browser to increase scrollable area and immediately set scroll
132
- if (preferredPlacement === 'bottom') {
133
- if (shouldScroll) {
134
- (0, _utils.scrollTo)(scrollParent, scrollDown);
135
- }
136
- return {
137
- placement: 'bottom',
138
- maxHeight: preferredMaxHeight
139
- };
140
- }
141
- break;
142
- case 'top':
143
- // 1: the menu will fit, do nothing
144
- if (viewSpaceAbove >= menuHeight) {
145
- return {
146
- placement: 'top',
147
- maxHeight: preferredMaxHeight
148
- };
149
- }
150
-
151
- // 2: the menu will fit, if scrolled
152
- if (scrollSpaceAbove >= menuHeight && !isFixedPosition) {
153
- if (shouldScroll) {
154
- (0, _utils.animatedScrollTo)(scrollParent, scrollUp, scrollDuration);
155
- }
156
- return {
157
- placement: 'top',
158
- maxHeight: preferredMaxHeight
159
- };
160
- }
161
-
162
- // 3: the menu will fit, if constrained
163
- if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {
164
- var _constrainedHeight2 = preferredMaxHeight;
165
-
166
- // we want to provide as much of the menu as possible to the user,
167
- // so give them whatever is available below rather than the minHeight.
168
- if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {
169
- _constrainedHeight2 = isFixedPosition ? viewSpaceAbove - marginTop : scrollSpaceAbove - marginTop;
170
- }
171
- if (shouldScroll) {
172
- (0, _utils.animatedScrollTo)(scrollParent, scrollUp, scrollDuration);
173
- }
174
- return {
175
- placement: 'top',
176
- maxHeight: _constrainedHeight2
177
- };
178
- }
179
-
180
- // 4. not enough space, the browser WILL NOT increase scrollable area when
181
- // absolutely positioned element rendered above the viewport (only below).
182
- // Flip the menu, render below
183
- return {
184
- placement: 'bottom',
185
- maxHeight: preferredMaxHeight
186
- };
187
- default:
188
- throw new Error("Invalid placement provided \"".concat(preferredPlacement, "\"."));
189
- }
190
- return defaultState;
191
- }
12
+ var _menu = _interopRequireWildcard(require("../compiled/components/menu"));
13
+ var _menu2 = _interopRequireWildcard(require("../emotion/components/menu"));
14
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
15
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
+ /* eslint-disable @repo/internal/react/no-unsafe-spread-props */
192
17
 
193
18
  // Menu Component
194
19
  // ------------------------------
195
20
 
196
- function alignToControl(placement) {
197
- var placementToCSSProp = {
198
- bottom: 'top',
199
- top: 'bottom'
200
- };
201
- return placement ? placementToCSSProp[placement] : 'bottom';
202
- }
203
- var coercePlacement = function coercePlacement(p) {
204
- return p === 'auto' ? 'bottom' : p;
205
- };
206
- var menuCSS = exports.menuCSS = function menuCSS(_ref2) {
207
- var placement = _ref2.placement;
208
- return (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({
209
- label: 'menu'
210
- }, alignToControl(placement), '100%'), "position", 'absolute'), "width", '100%'), "zIndex", 1), "borderRadius", "var(--ds-border-radius, 4px)"), "marginBottom", "var(--ds-space-100, 8px)"), "marginTop", "var(--ds-space-100, 8px)"), "backgroundColor", "var(--ds-surface-overlay, white)"), "boxShadow", "var(--ds-shadow-overlay, 0 0 0 1px hsl(0deg 0% 0% / 10%), 0 4px 11px hsl(0deg 0% 0% / 10%))");
21
+ var menuCSS = exports.menuCSS = function menuCSS(props) {
22
+ return (0, _platformFeatureFlags.fg)('compiled-react-select') ? (0, _menu.menuCSS)() : (0, _menu2.menuCSS)(props);
211
23
  };
212
- var PortalPlacementContext = /*#__PURE__*/(0, _react.createContext)(null);
213
24
 
214
25
  // NOTE: internal only
215
26
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
216
27
  var MenuPlacer = exports.MenuPlacer = function MenuPlacer(props) {
217
- var children = props.children,
218
- minMenuHeight = props.minMenuHeight,
219
- maxMenuHeight = props.maxMenuHeight,
220
- menuPlacement = props.menuPlacement,
221
- menuPosition = props.menuPosition,
222
- menuShouldScrollIntoView = props.menuShouldScrollIntoView;
223
- var _ref4 = (0, _react.useContext)(PortalPlacementContext) || {},
224
- setPortalPlacement = _ref4.setPortalPlacement;
225
- var ref = (0, _react.useRef)(null);
226
- var _useState = (0, _react.useState)(maxMenuHeight),
227
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
228
- maxHeight = _useState2[0],
229
- setMaxHeight = _useState2[1];
230
- var _useState3 = (0, _react.useState)(null),
231
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
232
- placement = _useState4[0],
233
- setPlacement = _useState4[1];
234
- // The minimum height of the control
235
- var controlHeight = 38;
236
- (0, _useIsomorphicLayoutEffect.default)(function () {
237
- var menuEl = ref.current;
238
- if (!menuEl) {
239
- return;
240
- }
241
-
242
- // DO NOT scroll if position is fixed
243
- var isFixedPosition = menuPosition === 'fixed';
244
- var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;
245
- var state = getMenuPlacement({
246
- maxHeight: maxMenuHeight,
247
- menuEl: menuEl,
248
- minHeight: minMenuHeight,
249
- placement: menuPlacement,
250
- shouldScroll: shouldScroll,
251
- isFixedPosition: isFixedPosition,
252
- controlHeight: controlHeight
253
- });
254
- setMaxHeight(state.maxHeight);
255
- setPlacement(state.placement);
256
- setPortalPlacement === null || setPortalPlacement === void 0 || setPortalPlacement(state.placement);
257
- }, [maxMenuHeight, menuPlacement, menuPosition, menuShouldScrollIntoView, minMenuHeight, setPortalPlacement, controlHeight]);
258
- return children({
259
- ref: ref,
260
- placerProps: _objectSpread(_objectSpread({}, props), {}, {
261
- placement: placement || coercePlacement(menuPlacement),
262
- maxHeight: maxHeight
263
- })
264
- });
28
+ return (0, _platformFeatureFlags.fg)('compiled-react-select') ? /*#__PURE__*/_react.default.createElement(_menu.MenuPlacer, props) : /*#__PURE__*/_react.default.createElement(_menu2.MenuPlacer, props);
265
29
  };
266
30
  var Menu = function Menu(props) {
267
- var children = props.children,
268
- innerRef = props.innerRef,
269
- innerProps = props.innerProps;
270
- return (0, _react2.jsx)("div", (0, _extends2.default)({}, (0, _utils.getStyleProps)(props, 'menu', {
271
- menu: true
272
- }), {
273
- ref: innerRef
274
- }, innerProps), children);
31
+ return (0, _platformFeatureFlags.fg)('compiled-react-select') ? /*#__PURE__*/_react.default.createElement(_menu.default, props) : /*#__PURE__*/_react.default.createElement(_menu2.default, props);
275
32
  };
276
33
 
277
34
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
278
35
  var _default = exports.default = Menu; // ==============================
279
36
  // Menu List
280
37
  // ==============================
281
- var menuListCSS = exports.menuListCSS = function menuListCSS(_ref5) {
282
- var maxHeight = _ref5.maxHeight;
283
- return {
284
- maxHeight: maxHeight,
285
- overflowY: 'auto',
286
- position: 'relative',
287
- // required for offset[Height, Top] > keyboard scroll
288
- WebkitOverflowScrolling: 'touch',
289
- paddingTop: "var(--ds-space-100, 8px)",
290
- paddingBottom: "var(--ds-space-100, 8px)"
291
- };
38
+ var menuListCSS = exports.menuListCSS = function menuListCSS(props) {
39
+ return (0, _platformFeatureFlags.fg)('compiled-react-select') ? (0, _menu.menuListCSS)() : (0, _menu2.menuListCSS)(props);
292
40
  };
293
41
 
294
42
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
295
43
  var MenuList = exports.MenuList = function MenuList(props) {
296
- var children = props.children,
297
- innerProps = props.innerProps,
298
- innerRef = props.innerRef,
299
- isMulti = props.isMulti;
300
- return (0, _react2.jsx)("div", (0, _extends2.default)({}, (0, _utils.getStyleProps)(props, 'menuList', {
301
- 'menu-list': true,
302
- 'menu-list--is-multi': isMulti
303
- }), {
304
- ref: innerRef
305
- }, innerProps, {
306
- tabIndex: -1
307
- }), children);
44
+ return (0, _platformFeatureFlags.fg)('compiled-react-select') ? /*#__PURE__*/_react.default.createElement(_menu.MenuList, props) : /*#__PURE__*/_react.default.createElement(_menu2.MenuList, props);
308
45
  };
309
46
 
310
47
  // ==============================
311
48
  // Menu Notices
312
49
  // ==============================
313
50
 
314
- var noticeCSS = function noticeCSS(_ref6) {
315
- (0, _objectDestructuringEmpty2.default)(_ref6);
51
+ var noticeCSS = function noticeCSS(_ref) {
52
+ (0, _objectDestructuringEmpty2.default)(_ref);
316
53
  return {
317
54
  textAlign: 'center',
318
55
  padding: "var(--ds-space-100, 8px)".concat(" ", "var(--ds-space-150, 12px)")
@@ -321,136 +58,24 @@ var noticeCSS = function noticeCSS(_ref6) {
321
58
  var noOptionsMessageCSS = exports.noOptionsMessageCSS = noticeCSS;
322
59
  var loadingMessageCSS = exports.loadingMessageCSS = noticeCSS;
323
60
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
324
- var NoOptionsMessage = exports.NoOptionsMessage = function NoOptionsMessage(_ref7) {
325
- var _ref7$children = _ref7.children,
326
- children = _ref7$children === void 0 ? 'No options' : _ref7$children,
327
- innerProps = _ref7.innerProps,
328
- restProps = (0, _objectWithoutProperties2.default)(_ref7, _excluded);
329
- return (0, _react2.jsx)("div", (0, _extends2.default)({}, (0, _utils.getStyleProps)(_objectSpread(_objectSpread({}, restProps), {}, {
330
- children: children,
331
- innerProps: innerProps
332
- }), 'noOptionsMessage', {
333
- 'menu-notice': true,
334
- 'menu-notice--no-options': true
335
- }), {
336
- // eslint-disable-next-line jsx-a11y/role-has-required-aria-props
337
- role: "option"
338
- }, innerProps), (0, _react2.jsx)(_primitives.Text, {
339
- color: "color.text.subtle"
340
- }, children));
61
+ var NoOptionsMessage = exports.NoOptionsMessage = function NoOptionsMessage(props) {
62
+ return (0, _platformFeatureFlags.fg)('compiled-react-select') ? /*#__PURE__*/_react.default.createElement(_menu.NoOptionsMessage, props) : /*#__PURE__*/_react.default.createElement(_menu2.NoOptionsMessage, props);
341
63
  };
342
64
 
343
65
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
344
- var LoadingMessage = exports.LoadingMessage = function LoadingMessage(_ref8) {
345
- var _ref8$children = _ref8.children,
346
- children = _ref8$children === void 0 ? 'Loading...' : _ref8$children,
347
- innerProps = _ref8.innerProps,
348
- restProps = (0, _objectWithoutProperties2.default)(_ref8, _excluded2);
349
- return (0, _react2.jsx)("div", (0, _extends2.default)({}, (0, _utils.getStyleProps)(_objectSpread(_objectSpread({}, restProps), {}, {
350
- children: children,
351
- innerProps: innerProps
352
- }), 'loadingMessage', {
353
- 'menu-notice': true,
354
- 'menu-notice--loading': true
355
- }), innerProps, {
356
- // eslint-disable-next-line jsx-a11y/role-has-required-aria-props
357
- role: "option"
358
- }), (0, _react2.jsx)(_primitives.Text, {
359
- color: "color.text.subtle"
360
- }, children));
66
+ var LoadingMessage = exports.LoadingMessage = function LoadingMessage(props) {
67
+ return (0, _platformFeatureFlags.fg)('compiled-react-select') ? /*#__PURE__*/_react.default.createElement(_menu.LoadingMessage, props) : /*#__PURE__*/_react.default.createElement(_menu2.LoadingMessage, props);
361
68
  };
362
69
 
363
70
  // ==============================
364
71
  // Menu Portal
365
72
  // ==============================
366
73
 
367
- var menuPortalCSS = exports.menuPortalCSS = function menuPortalCSS(_ref9) {
368
- var rect = _ref9.rect,
369
- offset = _ref9.offset,
370
- position = _ref9.position;
371
- return {
372
- left: rect.left,
373
- position: position,
374
- top: offset,
375
- width: rect.width,
376
- zIndex: 1
377
- };
74
+ var menuPortalCSS = exports.menuPortalCSS = function menuPortalCSS(props) {
75
+ return (0, _platformFeatureFlags.fg)('compiled-react-select') ? (0, _menu.menuPortalCSS)() : (0, _menu2.menuPortalCSS)(props);
378
76
  };
77
+
379
78
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
380
79
  var MenuPortal = exports.MenuPortal = function MenuPortal(props) {
381
- var appendTo = props.appendTo,
382
- children = props.children,
383
- controlElement = props.controlElement,
384
- innerProps = props.innerProps,
385
- menuPlacement = props.menuPlacement,
386
- menuPosition = props.menuPosition;
387
- var menuPortalRef = (0, _react.useRef)(null);
388
- var cleanupRef = (0, _react.useRef)(null);
389
- var _useState5 = (0, _react.useState)(coercePlacement(menuPlacement)),
390
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
391
- placement = _useState6[0],
392
- setPortalPlacement = _useState6[1];
393
- var portalPlacementContext = (0, _react.useMemo)(function () {
394
- return {
395
- setPortalPlacement: setPortalPlacement
396
- };
397
- }, []);
398
- var _useState7 = (0, _react.useState)(null),
399
- _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
400
- computedPosition = _useState8[0],
401
- setComputedPosition = _useState8[1];
402
- var updateComputedPosition = (0, _react.useCallback)(function () {
403
- if (!controlElement) {
404
- return;
405
- }
406
- var rect = (0, _utils.getBoundingClientObj)(controlElement);
407
- var scrollDistance = menuPosition === 'fixed' ? 0 : window.pageYOffset;
408
- var offset = rect[placement] + scrollDistance;
409
- if (offset !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.offset) || rect.left !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.left) || rect.width !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.width)) {
410
- setComputedPosition({
411
- offset: offset,
412
- rect: rect
413
- });
414
- }
415
- }, [controlElement, menuPosition, placement, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.offset, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.left, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.width]);
416
- (0, _useIsomorphicLayoutEffect.default)(function () {
417
- updateComputedPosition();
418
- }, [updateComputedPosition]);
419
- var runAutoUpdate = (0, _react.useCallback)(function () {
420
- if (typeof cleanupRef.current === 'function') {
421
- cleanupRef.current();
422
- cleanupRef.current = null;
423
- }
424
- if (controlElement && menuPortalRef.current) {
425
- cleanupRef.current = (0, _dom.autoUpdate)(controlElement, menuPortalRef.current, updateComputedPosition, {
426
- elementResize: 'ResizeObserver' in window
427
- });
428
- }
429
- }, [controlElement, updateComputedPosition]);
430
- (0, _useIsomorphicLayoutEffect.default)(function () {
431
- runAutoUpdate();
432
- }, [runAutoUpdate]);
433
- var setMenuPortalElement = (0, _react.useCallback)(function (menuPortalElement) {
434
- menuPortalRef.current = menuPortalElement;
435
- runAutoUpdate();
436
- }, [runAutoUpdate]);
437
-
438
- // bail early if required elements aren't present
439
- if (!appendTo && menuPosition !== 'fixed' || !computedPosition) {
440
- return null;
441
- }
442
-
443
- // same wrapper element whether fixed or portalled
444
- var menuWrapper = (0, _react2.jsx)("div", (0, _extends2.default)({
445
- ref: setMenuPortalElement
446
- }, (0, _utils.getStyleProps)(_objectSpread(_objectSpread({}, props), {}, {
447
- offset: computedPosition.offset,
448
- position: menuPosition,
449
- rect: computedPosition.rect
450
- }), 'menuPortal', {
451
- 'menu-portal': true
452
- }), innerProps), children);
453
- return (0, _react2.jsx)(PortalPlacementContext.Provider, {
454
- value: portalPlacementContext
455
- }, appendTo ? /*#__PURE__*/(0, _reactDom.createPortal)(menuWrapper, appendTo) : menuWrapper);
80
+ return (0, _platformFeatureFlags.fg)('compiled-react-select') ? /*#__PURE__*/_react.default.createElement(_menu.MenuPortal, props) : /*#__PURE__*/_react.default.createElement(_menu2.MenuPortal, props);
456
81
  };