@atlaskit/react-select 3.0.0 → 3.0.2

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 (276) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/components/containers.compiled.css +26 -0
  3. package/dist/cjs/components/containers.js +80 -12
  4. package/dist/cjs/components/control.js +50 -7
  5. package/dist/cjs/components/group.js +60 -10
  6. package/dist/cjs/components/indicators.js +128 -13
  7. package/dist/cjs/components/input.js +50 -7
  8. package/dist/cjs/components/internal/a11y-text.js +14 -5
  9. package/dist/cjs/components/internal/dummy-input.js +21 -5
  10. package/dist/cjs/components/internal/required-input.js +24 -6
  11. package/dist/cjs/components/live-region.js +101 -5
  12. package/dist/cjs/components/menu.js +436 -25
  13. package/dist/cjs/components/multi-value.js +148 -17
  14. package/dist/cjs/components/option.js +41 -7
  15. package/dist/cjs/components/placeholder.js +29 -7
  16. package/dist/cjs/components/single-value.js +30 -7
  17. package/dist/es2019/components/containers.compiled.css +26 -0
  18. package/dist/es2019/components/containers.js +93 -9
  19. package/dist/es2019/components/control.js +54 -6
  20. package/dist/es2019/components/group.js +67 -7
  21. package/dist/es2019/components/indicators.js +131 -9
  22. package/dist/es2019/components/input.js +53 -5
  23. package/dist/es2019/components/internal/a11y-text.js +12 -4
  24. package/dist/es2019/components/internal/dummy-input.js +19 -5
  25. package/dist/es2019/components/internal/required-input.js +22 -4
  26. package/dist/es2019/components/live-region.js +104 -4
  27. package/dist/es2019/components/menu.js +444 -17
  28. package/dist/es2019/components/multi-value.js +158 -11
  29. package/dist/es2019/components/option.js +45 -5
  30. package/dist/es2019/components/placeholder.js +33 -5
  31. package/dist/es2019/components/single-value.js +34 -5
  32. package/dist/esm/components/containers.compiled.css +26 -0
  33. package/dist/esm/components/containers.js +78 -11
  34. package/dist/esm/components/control.js +51 -6
  35. package/dist/esm/components/group.js +60 -9
  36. package/dist/esm/components/indicators.js +127 -13
  37. package/dist/esm/components/input.js +50 -6
  38. package/dist/esm/components/internal/a11y-text.js +12 -4
  39. package/dist/esm/components/internal/dummy-input.js +20 -5
  40. package/dist/esm/components/internal/required-input.js +22 -5
  41. package/dist/esm/components/live-region.js +99 -4
  42. package/dist/esm/components/menu.js +437 -25
  43. package/dist/esm/components/multi-value.js +148 -16
  44. package/dist/esm/components/option.js +41 -6
  45. package/dist/esm/components/placeholder.js +29 -6
  46. package/dist/esm/components/single-value.js +30 -6
  47. package/dist/types/components/containers.d.ts +12 -8
  48. package/dist/types/components/control.d.ts +7 -3
  49. package/dist/types/components/group.d.ts +10 -6
  50. package/dist/types/components/index.d.ts +21 -21
  51. package/dist/types/components/indicators.d.ts +12 -8
  52. package/dist/types/components/input.d.ts +8 -4
  53. package/dist/types/components/internal/a11y-text.d.ts +2 -2
  54. package/dist/types/components/internal/dummy-input.d.ts +7 -3
  55. package/dist/types/components/internal/required-input.d.ts +4 -0
  56. package/dist/types/components/live-region.d.ts +0 -2
  57. package/dist/types/components/menu.d.ts +17 -13
  58. package/dist/types/components/multi-value.d.ts +13 -9
  59. package/dist/types/components/option.d.ts +8 -4
  60. package/dist/types/components/placeholder.d.ts +8 -4
  61. package/dist/types/components/single-value.d.ts +8 -4
  62. package/dist/types/select.d.ts +23 -23
  63. package/dist/types/styles.d.ts +21 -21
  64. package/dist/types/types.d.ts +1 -4
  65. package/dist/types/utils.d.ts +1 -1
  66. package/dist/types-ts4.5/components/containers.d.ts +12 -8
  67. package/dist/types-ts4.5/components/control.d.ts +7 -3
  68. package/dist/types-ts4.5/components/group.d.ts +10 -6
  69. package/dist/types-ts4.5/components/index.d.ts +21 -21
  70. package/dist/types-ts4.5/components/indicators.d.ts +12 -8
  71. package/dist/types-ts4.5/components/input.d.ts +8 -4
  72. package/dist/types-ts4.5/components/internal/a11y-text.d.ts +2 -2
  73. package/dist/types-ts4.5/components/internal/dummy-input.d.ts +7 -3
  74. package/dist/types-ts4.5/components/internal/required-input.d.ts +4 -0
  75. package/dist/types-ts4.5/components/live-region.d.ts +0 -2
  76. package/dist/types-ts4.5/components/menu.d.ts +17 -13
  77. package/dist/types-ts4.5/components/multi-value.d.ts +13 -9
  78. package/dist/types-ts4.5/components/option.d.ts +8 -4
  79. package/dist/types-ts4.5/components/placeholder.d.ts +8 -4
  80. package/dist/types-ts4.5/components/single-value.d.ts +8 -4
  81. package/dist/types-ts4.5/select.d.ts +23 -23
  82. package/dist/types-ts4.5/styles.d.ts +21 -21
  83. package/dist/types-ts4.5/types.d.ts +1 -4
  84. package/dist/types-ts4.5/utils.d.ts +1 -1
  85. package/package.json +2 -4
  86. package/dist/cjs/compiled/components/control.js +0 -65
  87. package/dist/cjs/compiled/components/group.js +0 -80
  88. package/dist/cjs/compiled/components/indicators.js +0 -158
  89. package/dist/cjs/compiled/components/input.js +0 -65
  90. package/dist/cjs/compiled/components/internal/a11y-text.js +0 -24
  91. package/dist/cjs/compiled/components/internal/dummy-input.js +0 -30
  92. package/dist/cjs/compiled/components/internal/required-input.js +0 -35
  93. package/dist/cjs/compiled/components/live-region.js +0 -117
  94. package/dist/cjs/compiled/components/menu.js +0 -489
  95. package/dist/cjs/compiled/components/multi-value.js +0 -173
  96. package/dist/cjs/compiled/components/option.js +0 -56
  97. package/dist/cjs/compiled/components/placeholder.js +0 -44
  98. package/dist/cjs/compiled/components/single-value.js +0 -45
  99. package/dist/cjs/emotion/components/containers.js +0 -117
  100. package/dist/cjs/emotion/components/control.js +0 -112
  101. package/dist/cjs/emotion/components/group.js +0 -72
  102. package/dist/cjs/emotion/components/indicators.js +0 -140
  103. package/dist/cjs/emotion/components/input.js +0 -94
  104. package/dist/cjs/emotion/components/internal/a11y-text.js +0 -37
  105. package/dist/cjs/emotion/components/internal/dummy-input.js +0 -45
  106. package/dist/cjs/emotion/components/internal/index.js +0 -34
  107. package/dist/cjs/emotion/components/internal/required-input.js +0 -45
  108. package/dist/cjs/emotion/components/internal/scroll-manager.js +0 -59
  109. package/dist/cjs/emotion/components/internal/use-scroll-capture.js +0 -132
  110. package/dist/cjs/emotion/components/internal/use-scroll-lock.js +0 -149
  111. package/dist/cjs/emotion/components/live-region.js +0 -120
  112. package/dist/cjs/emotion/components/menu.js +0 -456
  113. package/dist/cjs/emotion/components/multi-value.js +0 -199
  114. package/dist/cjs/emotion/components/option.js +0 -84
  115. package/dist/cjs/emotion/components/placeholder.js +0 -36
  116. package/dist/cjs/emotion/components/single-value.js +0 -42
  117. package/dist/es2019/compiled/components/control.js +0 -58
  118. package/dist/es2019/compiled/components/group.js +0 -72
  119. package/dist/es2019/compiled/components/indicators.js +0 -146
  120. package/dist/es2019/compiled/components/input.js +0 -56
  121. package/dist/es2019/compiled/components/internal/a11y-text.js +0 -13
  122. package/dist/es2019/compiled/components/internal/dummy-input.js +0 -20
  123. package/dist/es2019/compiled/components/internal/required-input.js +0 -25
  124. package/dist/es2019/compiled/components/live-region.js +0 -112
  125. package/dist/es2019/compiled/components/menu.js +0 -477
  126. package/dist/es2019/compiled/components/multi-value.js +0 -165
  127. package/dist/es2019/compiled/components/option.js +0 -48
  128. package/dist/es2019/compiled/components/placeholder.js +0 -36
  129. package/dist/es2019/compiled/components/single-value.js +0 -37
  130. package/dist/es2019/emotion/components/containers.js +0 -114
  131. package/dist/es2019/emotion/components/control.js +0 -108
  132. package/dist/es2019/emotion/components/group.js +0 -60
  133. package/dist/es2019/emotion/components/indicators.js +0 -131
  134. package/dist/es2019/emotion/components/input.js +0 -87
  135. package/dist/es2019/emotion/components/internal/a11y-text.js +0 -28
  136. package/dist/es2019/emotion/components/internal/dummy-input.js +0 -38
  137. package/dist/es2019/emotion/components/internal/index.js +0 -4
  138. package/dist/es2019/emotion/components/internal/required-input.js +0 -36
  139. package/dist/es2019/emotion/components/internal/scroll-manager.js +0 -51
  140. package/dist/es2019/emotion/components/internal/use-scroll-capture.js +0 -128
  141. package/dist/es2019/emotion/components/internal/use-scroll-lock.js +0 -143
  142. package/dist/es2019/emotion/components/live-region.js +0 -120
  143. package/dist/es2019/emotion/components/menu.js +0 -452
  144. package/dist/es2019/emotion/components/multi-value.js +0 -203
  145. package/dist/es2019/emotion/components/option.js +0 -79
  146. package/dist/es2019/emotion/components/placeholder.js +0 -29
  147. package/dist/es2019/emotion/components/single-value.js +0 -35
  148. package/dist/esm/compiled/components/control.js +0 -57
  149. package/dist/esm/compiled/components/group.js +0 -71
  150. package/dist/esm/compiled/components/indicators.js +0 -150
  151. package/dist/esm/compiled/components/input.js +0 -56
  152. package/dist/esm/compiled/components/internal/a11y-text.js +0 -15
  153. package/dist/esm/compiled/components/internal/dummy-input.js +0 -21
  154. package/dist/esm/compiled/components/internal/required-input.js +0 -26
  155. package/dist/esm/compiled/components/live-region.js +0 -109
  156. package/dist/esm/compiled/components/menu.js +0 -484
  157. package/dist/esm/compiled/components/multi-value.js +0 -162
  158. package/dist/esm/compiled/components/option.js +0 -47
  159. package/dist/esm/compiled/components/placeholder.js +0 -35
  160. package/dist/esm/compiled/components/single-value.js +0 -36
  161. package/dist/esm/emotion/components/containers.js +0 -110
  162. package/dist/esm/emotion/components/control.js +0 -104
  163. package/dist/esm/emotion/components/group.js +0 -66
  164. package/dist/esm/emotion/components/indicators.js +0 -135
  165. package/dist/esm/emotion/components/input.js +0 -90
  166. package/dist/esm/emotion/components/internal/a11y-text.js +0 -30
  167. package/dist/esm/emotion/components/internal/dummy-input.js +0 -39
  168. package/dist/esm/emotion/components/internal/index.js +0 -4
  169. package/dist/esm/emotion/components/internal/required-input.js +0 -37
  170. package/dist/esm/emotion/components/internal/scroll-manager.js +0 -51
  171. package/dist/esm/emotion/components/internal/use-scroll-capture.js +0 -126
  172. package/dist/esm/emotion/components/internal/use-scroll-lock.js +0 -143
  173. package/dist/esm/emotion/components/live-region.js +0 -117
  174. package/dist/esm/emotion/components/menu.js +0 -456
  175. package/dist/esm/emotion/components/multi-value.js +0 -193
  176. package/dist/esm/emotion/components/option.js +0 -76
  177. package/dist/esm/emotion/components/placeholder.js +0 -28
  178. package/dist/esm/emotion/components/single-value.js +0 -34
  179. package/dist/types/compiled/components/control.d.ts +0 -41
  180. package/dist/types/compiled/components/group.d.ts +0 -54
  181. package/dist/types/compiled/components/indicators.d.ts +0 -72
  182. package/dist/types/compiled/components/input.d.ts +0 -36
  183. package/dist/types/compiled/components/internal/a11y-text.d.ts +0 -3
  184. package/dist/types/compiled/components/internal/dummy-input.d.ts +0 -8
  185. package/dist/types/compiled/components/internal/required-input.d.ts +0 -10
  186. package/dist/types/compiled/components/live-region.d.ts +0 -17
  187. package/dist/types/compiled/components/menu.d.ts +0 -115
  188. package/dist/types/compiled/components/multi-value.d.ts +0 -57
  189. package/dist/types/compiled/components/option.d.ts +0 -48
  190. package/dist/types/compiled/components/placeholder.d.ts +0 -21
  191. package/dist/types/compiled/components/single-value.d.ts +0 -27
  192. package/dist/types/emotion/components/containers.d.ts +0 -54
  193. package/dist/types/emotion/components/control.d.ts +0 -42
  194. package/dist/types/emotion/components/group.d.ts +0 -52
  195. package/dist/types/emotion/components/indicators.d.ts +0 -73
  196. package/dist/types/emotion/components/input.d.ts +0 -37
  197. package/dist/types/emotion/components/internal/a11y-text.d.ts +0 -8
  198. package/dist/types/emotion/components/internal/dummy-input.d.ts +0 -9
  199. package/dist/types/emotion/components/internal/index.d.ts +0 -4
  200. package/dist/types/emotion/components/internal/required-input.d.ts +0 -10
  201. package/dist/types/emotion/components/internal/scroll-manager.d.ts +0 -17
  202. package/dist/types/emotion/components/internal/use-scroll-capture.d.ts +0 -12
  203. package/dist/types/emotion/components/internal/use-scroll-lock.d.ts +0 -9
  204. package/dist/types/emotion/components/live-region.d.ts +0 -23
  205. package/dist/types/emotion/components/menu.d.ts +0 -116
  206. package/dist/types/emotion/components/multi-value.d.ts +0 -47
  207. package/dist/types/emotion/components/option.d.ts +0 -49
  208. package/dist/types/emotion/components/placeholder.d.ts +0 -22
  209. package/dist/types/emotion/components/single-value.d.ts +0 -28
  210. package/dist/types-ts4.5/compiled/components/control.d.ts +0 -41
  211. package/dist/types-ts4.5/compiled/components/group.d.ts +0 -54
  212. package/dist/types-ts4.5/compiled/components/indicators.d.ts +0 -72
  213. package/dist/types-ts4.5/compiled/components/input.d.ts +0 -36
  214. package/dist/types-ts4.5/compiled/components/internal/a11y-text.d.ts +0 -3
  215. package/dist/types-ts4.5/compiled/components/internal/dummy-input.d.ts +0 -8
  216. package/dist/types-ts4.5/compiled/components/internal/required-input.d.ts +0 -10
  217. package/dist/types-ts4.5/compiled/components/live-region.d.ts +0 -17
  218. package/dist/types-ts4.5/compiled/components/menu.d.ts +0 -115
  219. package/dist/types-ts4.5/compiled/components/multi-value.d.ts +0 -57
  220. package/dist/types-ts4.5/compiled/components/option.d.ts +0 -48
  221. package/dist/types-ts4.5/compiled/components/placeholder.d.ts +0 -21
  222. package/dist/types-ts4.5/compiled/components/single-value.d.ts +0 -27
  223. package/dist/types-ts4.5/emotion/components/containers.d.ts +0 -54
  224. package/dist/types-ts4.5/emotion/components/control.d.ts +0 -42
  225. package/dist/types-ts4.5/emotion/components/group.d.ts +0 -52
  226. package/dist/types-ts4.5/emotion/components/indicators.d.ts +0 -73
  227. package/dist/types-ts4.5/emotion/components/input.d.ts +0 -37
  228. package/dist/types-ts4.5/emotion/components/internal/a11y-text.d.ts +0 -8
  229. package/dist/types-ts4.5/emotion/components/internal/dummy-input.d.ts +0 -9
  230. package/dist/types-ts4.5/emotion/components/internal/index.d.ts +0 -4
  231. package/dist/types-ts4.5/emotion/components/internal/required-input.d.ts +0 -10
  232. package/dist/types-ts4.5/emotion/components/internal/scroll-manager.d.ts +0 -17
  233. package/dist/types-ts4.5/emotion/components/internal/use-scroll-capture.d.ts +0 -12
  234. package/dist/types-ts4.5/emotion/components/internal/use-scroll-lock.d.ts +0 -9
  235. package/dist/types-ts4.5/emotion/components/live-region.d.ts +0 -23
  236. package/dist/types-ts4.5/emotion/components/menu.d.ts +0 -116
  237. package/dist/types-ts4.5/emotion/components/multi-value.d.ts +0 -47
  238. package/dist/types-ts4.5/emotion/components/option.d.ts +0 -49
  239. package/dist/types-ts4.5/emotion/components/placeholder.d.ts +0 -22
  240. package/dist/types-ts4.5/emotion/components/single-value.d.ts +0 -28
  241. /package/dist/cjs/{compiled/components → components}/control.compiled.css +0 -0
  242. /package/dist/cjs/{compiled/components → components}/group.compiled.css +0 -0
  243. /package/dist/cjs/{compiled/components → components}/indicators.compiled.css +0 -0
  244. /package/dist/cjs/{compiled/components → components}/input.compiled.css +0 -0
  245. /package/dist/cjs/{compiled/components → components}/internal/a11y-text.compiled.css +0 -0
  246. /package/dist/cjs/{compiled/components → components}/internal/dummy-input.compiled.css +0 -0
  247. /package/dist/cjs/{compiled/components → components}/internal/required-input.compiled.css +0 -0
  248. /package/dist/cjs/{compiled/components → components}/menu.compiled.css +0 -0
  249. /package/dist/cjs/{compiled/components → components}/multi-value.compiled.css +0 -0
  250. /package/dist/cjs/{compiled/components → components}/option.compiled.css +0 -0
  251. /package/dist/cjs/{compiled/components → components}/placeholder.compiled.css +0 -0
  252. /package/dist/cjs/{compiled/components → components}/single-value.compiled.css +0 -0
  253. /package/dist/es2019/{compiled/components → components}/control.compiled.css +0 -0
  254. /package/dist/es2019/{compiled/components → components}/group.compiled.css +0 -0
  255. /package/dist/es2019/{compiled/components → components}/indicators.compiled.css +0 -0
  256. /package/dist/es2019/{compiled/components → components}/input.compiled.css +0 -0
  257. /package/dist/es2019/{compiled/components → components}/internal/a11y-text.compiled.css +0 -0
  258. /package/dist/es2019/{compiled/components → components}/internal/dummy-input.compiled.css +0 -0
  259. /package/dist/es2019/{compiled/components → components}/internal/required-input.compiled.css +0 -0
  260. /package/dist/es2019/{compiled/components → components}/menu.compiled.css +0 -0
  261. /package/dist/es2019/{compiled/components → components}/multi-value.compiled.css +0 -0
  262. /package/dist/es2019/{compiled/components → components}/option.compiled.css +0 -0
  263. /package/dist/es2019/{compiled/components → components}/placeholder.compiled.css +0 -0
  264. /package/dist/es2019/{compiled/components → components}/single-value.compiled.css +0 -0
  265. /package/dist/esm/{compiled/components → components}/control.compiled.css +0 -0
  266. /package/dist/esm/{compiled/components → components}/group.compiled.css +0 -0
  267. /package/dist/esm/{compiled/components → components}/indicators.compiled.css +0 -0
  268. /package/dist/esm/{compiled/components → components}/input.compiled.css +0 -0
  269. /package/dist/esm/{compiled/components → components}/internal/a11y-text.compiled.css +0 -0
  270. /package/dist/esm/{compiled/components → components}/internal/dummy-input.compiled.css +0 -0
  271. /package/dist/esm/{compiled/components → components}/internal/required-input.compiled.css +0 -0
  272. /package/dist/esm/{compiled/components → components}/menu.compiled.css +0 -0
  273. /package/dist/esm/{compiled/components → components}/multi-value.compiled.css +0 -0
  274. /package/dist/esm/{compiled/components → components}/option.compiled.css +0 -0
  275. /package/dist/esm/{compiled/components → components}/placeholder.compiled.css +0 -0
  276. /package/dist/esm/{compiled/components → components}/single-value.compiled.css +0 -0
@@ -1,3 +1,4 @@
1
+ /* menu.tsx generated by @compiled/babel-plugin v0.36.1 */
1
2
  "use strict";
2
3
 
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -6,73 +7,483 @@ Object.defineProperty(exports, "__esModule", {
6
7
  value: true
7
8
  });
8
9
  exports.noOptionsMessageCSS = exports.menuPortalCSS = exports.menuListCSS = exports.menuCSS = exports.loadingMessageCSS = exports.default = exports.NoOptionsMessage = exports.MenuPortal = exports.MenuPlacer = exports.MenuList = exports.LoadingMessage = void 0;
9
- var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty"));
10
- var _react = _interopRequireDefault(require("react"));
11
- var _menu = _interopRequireWildcard(require("../compiled/components/menu"));
10
+ require("./menu.compiled.css");
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var React = _react;
13
+ var _runtime = require("@compiled/react/runtime");
14
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
18
+ var _react2 = require("@compiled/react");
19
+ var _dom = require("@floating-ui/dom");
20
+ var _reactDom = require("react-dom");
21
+ var _useIsomorphicLayoutEffect = _interopRequireDefault(require("use-isomorphic-layout-effect"));
22
+ var _compiled = require("@atlaskit/primitives/compiled");
23
+ var _utils = require("../utils");
24
+ var _excluded = ["children", "innerProps", "xcss"],
25
+ _excluded2 = ["children", "innerProps", "xcss"];
12
26
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(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 (var _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); }
13
- /* eslint-disable @repo/internal/react/no-unsafe-spread-props */
27
+ 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; }
28
+ 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; }
29
+ // ==============================
30
+ // Menu
31
+ // ==============================
32
+
33
+ // Get Menu Placement
34
+ // ------------------------------
35
+
36
+ function getMenuPlacement(_ref) {
37
+ var preferredMaxHeight = _ref.maxHeight,
38
+ menuEl = _ref.menuEl,
39
+ minHeight = _ref.minHeight,
40
+ preferredPlacement = _ref.placement,
41
+ shouldScroll = _ref.shouldScroll,
42
+ isFixedPosition = _ref.isFixedPosition,
43
+ controlHeight = _ref.controlHeight;
44
+ var scrollParent = (0, _utils.getScrollParent)(menuEl);
45
+ var defaultState = {
46
+ placement: 'bottom',
47
+ maxHeight: preferredMaxHeight
48
+ };
49
+
50
+ // something went wrong, return default state
51
+ if (!menuEl || !menuEl.offsetParent) {
52
+ return defaultState;
53
+ }
54
+
55
+ // we can't trust `scrollParent.scrollHeight` --> it may increase when
56
+ // the menu is rendered
57
+ var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),
58
+ scrollHeight = _scrollParent$getBoun.height;
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
+ var menuTopFromParent = menuTop;
68
+ var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);
69
+ var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);
70
+ var viewSpaceAbove = containerTop - marginTop;
71
+ var viewSpaceBelow = viewHeight - menuTopFromParent;
72
+ var scrollSpaceAbove = viewSpaceAbove + scrollTop;
73
+ var scrollSpaceBelow = scrollHeight - scrollTop - menuTopFromParent;
74
+ var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;
75
+ var scrollUp = scrollTop + menuTop - marginTop;
76
+ var scrollDuration = 160;
77
+ switch (preferredPlacement) {
78
+ case 'auto':
79
+ case 'bottom':
80
+ // 1: the menu will fit, do nothing
81
+ if (viewSpaceBelow >= menuHeight) {
82
+ return {
83
+ placement: 'bottom',
84
+ maxHeight: preferredMaxHeight
85
+ };
86
+ }
87
+
88
+ // 2: the menu will fit, if scrolled
89
+ if (scrollSpaceBelow >= menuHeight && !isFixedPosition) {
90
+ if (shouldScroll) {
91
+ (0, _utils.animatedScrollTo)(scrollParent, scrollDown, scrollDuration);
92
+ }
93
+ return {
94
+ placement: 'bottom',
95
+ maxHeight: preferredMaxHeight
96
+ };
97
+ }
98
+
99
+ // 3: the menu will fit, if constrained
100
+ if (!isFixedPosition && scrollSpaceBelow >= minHeight || isFixedPosition && viewSpaceBelow >= minHeight) {
101
+ if (shouldScroll) {
102
+ (0, _utils.animatedScrollTo)(scrollParent, scrollDown, scrollDuration);
103
+ }
104
+
105
+ // we want to provide as much of the menu as possible to the user,
106
+ // so give them whatever is available below rather than the minHeight.
107
+ var constrainedHeight = isFixedPosition ? viewSpaceBelow - marginBottom : scrollSpaceBelow - marginBottom;
108
+ return {
109
+ placement: 'bottom',
110
+ maxHeight: constrainedHeight
111
+ };
112
+ }
113
+
114
+ // 4. Forked beviour when there isn't enough space below
115
+
116
+ // AUTO: flip the menu, render above
117
+ if (preferredPlacement === 'auto' || isFixedPosition) {
118
+ // may need to be constrained after flipping
119
+ var _constrainedHeight = preferredMaxHeight;
120
+ var spaceAbove = isFixedPosition ? viewSpaceAbove : scrollSpaceAbove;
121
+ if (spaceAbove >= minHeight) {
122
+ _constrainedHeight = Math.min(spaceAbove - marginBottom - controlHeight, preferredMaxHeight);
123
+ }
124
+ return {
125
+ placement: 'top',
126
+ maxHeight: _constrainedHeight
127
+ };
128
+ }
129
+
130
+ // BOTTOM: allow browser to increase scrollable area and immediately set scroll
131
+ if (preferredPlacement === 'bottom') {
132
+ if (shouldScroll) {
133
+ (0, _utils.scrollTo)(scrollParent, scrollDown);
134
+ }
135
+ return {
136
+ placement: 'bottom',
137
+ maxHeight: preferredMaxHeight
138
+ };
139
+ }
140
+ break;
141
+ case 'top':
142
+ // 1: the menu will fit, do nothing
143
+ if (viewSpaceAbove >= menuHeight) {
144
+ return {
145
+ placement: 'top',
146
+ maxHeight: preferredMaxHeight
147
+ };
148
+ }
149
+
150
+ // 2: the menu will fit, if scrolled
151
+ if (scrollSpaceAbove >= menuHeight && !isFixedPosition) {
152
+ if (shouldScroll) {
153
+ (0, _utils.animatedScrollTo)(scrollParent, scrollUp, scrollDuration);
154
+ }
155
+ return {
156
+ placement: 'top',
157
+ maxHeight: preferredMaxHeight
158
+ };
159
+ }
160
+
161
+ // 3: the menu will fit, if constrained
162
+ if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {
163
+ var _constrainedHeight2 = preferredMaxHeight;
164
+
165
+ // we want to provide as much of the menu as possible to the user,
166
+ // so give them whatever is available below rather than the minHeight.
167
+ if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {
168
+ _constrainedHeight2 = isFixedPosition ? viewSpaceAbove - marginTop : scrollSpaceAbove - marginTop;
169
+ }
170
+ if (shouldScroll) {
171
+ (0, _utils.animatedScrollTo)(scrollParent, scrollUp, scrollDuration);
172
+ }
173
+ return {
174
+ placement: 'top',
175
+ maxHeight: _constrainedHeight2
176
+ };
177
+ }
178
+
179
+ // 4. not enough space, the browser WILL NOT increase scrollable area when
180
+ // absolutely positioned element rendered above the viewport (only below).
181
+ // Flip the menu, render below
182
+ return {
183
+ placement: 'bottom',
184
+ maxHeight: preferredMaxHeight
185
+ };
186
+ default:
187
+ throw new Error("Invalid placement provided \"".concat(preferredPlacement, "\"."));
188
+ }
189
+ return defaultState;
190
+ }
14
191
 
15
192
  // Menu Component
16
193
  // ------------------------------
17
194
 
18
- var menuCSS = exports.menuCSS = function menuCSS(props) {
19
- return (0, _menu.menuCSS)();
195
+ var coercePlacement = function coercePlacement(p) {
196
+ return p === 'auto' ? 'bottom' : p;
197
+ };
198
+ var menuStyles = {
199
+ root: "_2rkoglpi _kqswstnw _1bsb1osq _1pbykb7n _otyru2gc _19pku2gc _bfhk1bhr _16qsd0yg",
200
+ bottom: "_154i1osq",
201
+ top: "_94n51osq"
202
+ };
203
+ var menuCSS = exports.menuCSS = function menuCSS() {
204
+ return {};
20
205
  };
206
+ var PortalPlacementContext = /*#__PURE__*/(0, _react.createContext)(null);
21
207
 
22
208
  // NOTE: internal only
23
209
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
24
210
  var MenuPlacer = exports.MenuPlacer = function MenuPlacer(props) {
25
- return /*#__PURE__*/_react.default.createElement(_menu.MenuPlacer, props);
211
+ var children = props.children,
212
+ minMenuHeight = props.minMenuHeight,
213
+ maxMenuHeight = props.maxMenuHeight,
214
+ menuPlacement = props.menuPlacement,
215
+ menuPosition = props.menuPosition,
216
+ menuShouldScrollIntoView = props.menuShouldScrollIntoView;
217
+ var _ref2 = (0, _react.useContext)(PortalPlacementContext) || {},
218
+ setPortalPlacement = _ref2.setPortalPlacement;
219
+ var ref = (0, _react.useRef)(null);
220
+ var _useState = (0, _react.useState)(maxMenuHeight),
221
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
222
+ maxHeight = _useState2[0],
223
+ setMaxHeight = _useState2[1];
224
+ var _useState3 = (0, _react.useState)(null),
225
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
226
+ placement = _useState4[0],
227
+ setPlacement = _useState4[1];
228
+ // The minimum height of the control
229
+ var controlHeight = 38;
230
+ (0, _useIsomorphicLayoutEffect.default)(function () {
231
+ var menuEl = ref.current;
232
+ if (!menuEl) {
233
+ return;
234
+ }
235
+
236
+ // DO NOT scroll if position is fixed
237
+ var isFixedPosition = menuPosition === 'fixed';
238
+ var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;
239
+ var state = getMenuPlacement({
240
+ maxHeight: maxMenuHeight,
241
+ menuEl: menuEl,
242
+ minHeight: minMenuHeight,
243
+ placement: menuPlacement,
244
+ shouldScroll: shouldScroll,
245
+ isFixedPosition: isFixedPosition,
246
+ controlHeight: controlHeight
247
+ });
248
+ setMaxHeight(state.maxHeight);
249
+ setPlacement(state.placement);
250
+ setPortalPlacement === null || setPortalPlacement === void 0 || setPortalPlacement(state.placement);
251
+ }, [maxMenuHeight, menuPlacement, menuPosition, menuShouldScrollIntoView, minMenuHeight, setPortalPlacement, controlHeight]);
252
+ return children({
253
+ ref: ref,
254
+ placerProps: _objectSpread(_objectSpread({}, props), {}, {
255
+ placement: placement || coercePlacement(menuPlacement),
256
+ maxHeight: maxHeight
257
+ })
258
+ });
26
259
  };
27
260
  var Menu = function Menu(props) {
28
- return /*#__PURE__*/_react.default.createElement(_menu.default, props);
261
+ var children = props.children,
262
+ innerRef = props.innerRef,
263
+ innerProps = props.innerProps,
264
+ _props$placement = props.placement,
265
+ placement = _props$placement === void 0 ? 'bottom' : _props$placement,
266
+ xcss = props.xcss;
267
+ var _getStyleProps = (0, _utils.getStyleProps)(props, 'menu', {
268
+ menu: true
269
+ }),
270
+ css = _getStyleProps.css,
271
+ className = _getStyleProps.className;
272
+ return /*#__PURE__*/React.createElement("div", (0, _extends2.default)({
273
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop, @atlaskit/ui-styling-standard/local-cx-xcss, @compiled/local-cx-xcss
274
+ className: (0, _runtime.ax)([menuStyles.root, menuStyles[placement], (0, _react2.cx)(xcss, className, '-menu')])
275
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
276
+ ,
277
+ style: css,
278
+ ref: innerRef
279
+ }, innerProps), children);
29
280
  };
30
281
 
31
282
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
32
283
  var _default = exports.default = Menu; // ==============================
33
284
  // Menu List
34
285
  // ==============================
35
- var menuListCSS = exports.menuListCSS = function menuListCSS(props) {
36
- return (0, _menu.menuListCSS)();
286
+ var menuListCSS = exports.menuListCSS = function menuListCSS() {
287
+ return {};
37
288
  };
289
+ var menuListStyles = null;
38
290
 
39
291
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
40
292
  var MenuList = exports.MenuList = function MenuList(props) {
41
- return /*#__PURE__*/_react.default.createElement(_menu.MenuList, props);
293
+ var children = props.children,
294
+ innerProps = props.innerProps,
295
+ innerRef = props.innerRef,
296
+ isMulti = props.isMulti,
297
+ maxHeight = props.maxHeight,
298
+ xcss = props.xcss;
299
+ var _getStyleProps2 = (0, _utils.getStyleProps)(props, 'menuList', {
300
+ 'menu-list': true,
301
+ 'menu-list--is-multi': isMulti
302
+ }),
303
+ css = _getStyleProps2.css,
304
+ className = _getStyleProps2.className;
305
+ return /*#__PURE__*/React.createElement("div", (0, _extends2.default)({
306
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop, @atlaskit/ui-styling-standard/local-cx-xcss, @compiled/local-cx-xcss
307
+ className: (0, _runtime.ax)(["_kqswh2mm _18m91wug _85i5u2gc _1q51u2gc _8am5i4x0", (0, _react2.cx)(className, xcss, '-MenuList')])
308
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
309
+ ,
310
+ style: _objectSpread(_objectSpread({}, css), {}, {
311
+ maxHeight: maxHeight
312
+ }),
313
+ ref: innerRef
314
+ }, innerProps, {
315
+ tabIndex: -1
316
+ }), children);
42
317
  };
43
318
 
44
319
  // ==============================
45
320
  // Menu Notices
46
321
  // ==============================
47
322
 
48
- var noticeCSS = function noticeCSS(_ref) {
49
- (0, _objectDestructuringEmpty2.default)(_ref);
50
- return {
51
- textAlign: 'center',
52
- padding: "var(--ds-space-100, 8px)".concat(" ", "var(--ds-space-150, 12px)")
53
- };
323
+ var noticeCSS = function noticeCSS() {
324
+ return {};
54
325
  };
326
+ var noticeStyles = null;
55
327
  var noOptionsMessageCSS = exports.noOptionsMessageCSS = noticeCSS;
56
328
  var loadingMessageCSS = exports.loadingMessageCSS = noticeCSS;
57
329
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
58
- var NoOptionsMessage = exports.NoOptionsMessage = function NoOptionsMessage(props) {
59
- return /*#__PURE__*/_react.default.createElement(_menu.NoOptionsMessage, props);
330
+ var NoOptionsMessage = exports.NoOptionsMessage = function NoOptionsMessage(_ref3) {
331
+ var _ref3$children = _ref3.children,
332
+ children = _ref3$children === void 0 ? 'No options' : _ref3$children,
333
+ innerProps = _ref3.innerProps,
334
+ xcss = _ref3.xcss,
335
+ restProps = (0, _objectWithoutProperties2.default)(_ref3, _excluded);
336
+ var _getStyleProps3 = (0, _utils.getStyleProps)(_objectSpread(_objectSpread({}, restProps), {}, {
337
+ children: children,
338
+ innerProps: innerProps
339
+ }), 'noOptionsMessage', {
340
+ 'menu-notice': true,
341
+ 'menu-notice--no-options': true
342
+ }),
343
+ css = _getStyleProps3.css,
344
+ className = _getStyleProps3.className;
345
+ return /*#__PURE__*/React.createElement("div", (0, _extends2.default)({
346
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop, @atlaskit/ui-styling-standard/local-cx-xcss, @compiled/local-cx-xcss
347
+ className: (0, _runtime.ax)(["_85i5u2gc _1q51u2gc _y4tiutpp _bozgutpp _y3gn1h6o", (0, _react2.cx)(className, xcss, '-NoOptionsMessage')])
348
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
349
+ ,
350
+ style: css
351
+ // eslint-disable-next-line jsx-a11y/role-has-required-aria-props
352
+ ,
353
+ role: "option"
354
+ }, innerProps), /*#__PURE__*/React.createElement(_compiled.Text, {
355
+ color: "color.text.subtle"
356
+ }, children));
60
357
  };
61
358
 
62
359
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
63
- var LoadingMessage = exports.LoadingMessage = function LoadingMessage(props) {
64
- return /*#__PURE__*/_react.default.createElement(_menu.LoadingMessage, props);
360
+ var LoadingMessage = exports.LoadingMessage = function LoadingMessage(_ref4) {
361
+ var _ref4$children = _ref4.children,
362
+ children = _ref4$children === void 0 ? 'Loading...' : _ref4$children,
363
+ innerProps = _ref4.innerProps,
364
+ xcss = _ref4.xcss,
365
+ restProps = (0, _objectWithoutProperties2.default)(_ref4, _excluded2);
366
+ var _getStyleProps4 = (0, _utils.getStyleProps)(_objectSpread(_objectSpread({}, restProps), {}, {
367
+ children: children,
368
+ innerProps: innerProps
369
+ }), 'loadingMessage', {
370
+ 'menu-notice': true,
371
+ 'menu-notice--loading': true
372
+ }),
373
+ css = _getStyleProps4.css,
374
+ className = _getStyleProps4.className;
375
+ return /*#__PURE__*/React.createElement("div", (0, _extends2.default)({
376
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop, @atlaskit/ui-styling-standard/local-cx-xcss, @compiled/local-cx-xcss
377
+ className: (0, _runtime.ax)(["_85i5u2gc _1q51u2gc _y4tiutpp _bozgutpp _y3gn1h6o", (0, _react2.cx)(className, xcss, '-LoadingMessage')])
378
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
379
+ ,
380
+ style: css
381
+ }, innerProps, {
382
+ // eslint-disable-next-line jsx-a11y/role-has-required-aria-props
383
+ role: "option"
384
+ }), /*#__PURE__*/React.createElement(_compiled.Text, {
385
+ color: "color.text.subtle"
386
+ }, children));
65
387
  };
66
388
 
67
389
  // ==============================
68
390
  // Menu Portal
69
391
  // ==============================
70
392
 
71
- var menuPortalCSS = exports.menuPortalCSS = function menuPortalCSS(props) {
72
- return (0, _menu.menuPortalCSS)();
393
+ var menuPortalCSS = exports.menuPortalCSS = function menuPortalCSS() {
394
+ return {};
395
+ };
396
+ var menuPortalStyles = {
397
+ root: "_1pbykb7n _1ltva1vk _kqswcp1v _154i1nmo _1bsb1qxj"
73
398
  };
74
-
75
399
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
76
400
  var MenuPortal = exports.MenuPortal = function MenuPortal(props) {
77
- return /*#__PURE__*/_react.default.createElement(_menu.MenuPortal, props);
401
+ var appendTo = props.appendTo,
402
+ children = props.children,
403
+ controlElement = props.controlElement,
404
+ innerProps = props.innerProps,
405
+ menuPlacement = props.menuPlacement,
406
+ menuPosition = props.menuPosition,
407
+ xcss = props.xcss;
408
+ var menuPortalRef = (0, _react.useRef)(null);
409
+ var cleanupRef = (0, _react.useRef)(null);
410
+ var _useState5 = (0, _react.useState)(coercePlacement(menuPlacement)),
411
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
412
+ placement = _useState6[0],
413
+ setPortalPlacement = _useState6[1];
414
+ var portalPlacementContext = (0, _react.useMemo)(function () {
415
+ return {
416
+ setPortalPlacement: setPortalPlacement
417
+ };
418
+ }, []);
419
+ var _useState7 = (0, _react.useState)(null),
420
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
421
+ computedPosition = _useState8[0],
422
+ setComputedPosition = _useState8[1];
423
+ var updateComputedPosition = (0, _react.useCallback)(function () {
424
+ if (!controlElement) {
425
+ return;
426
+ }
427
+ var rect = (0, _utils.getBoundingClientObj)(controlElement);
428
+ var scrollDistance = menuPosition === 'fixed' ? 0 : window.pageYOffset;
429
+ var offset = rect[placement] + scrollDistance;
430
+ 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)) {
431
+ setComputedPosition({
432
+ offset: offset,
433
+ rect: rect
434
+ });
435
+ }
436
+ }, [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]);
437
+ (0, _useIsomorphicLayoutEffect.default)(function () {
438
+ updateComputedPosition();
439
+ }, [updateComputedPosition]);
440
+ var runAutoUpdate = (0, _react.useCallback)(function () {
441
+ if (typeof cleanupRef.current === 'function') {
442
+ cleanupRef.current();
443
+ cleanupRef.current = null;
444
+ }
445
+ if (controlElement && menuPortalRef.current) {
446
+ cleanupRef.current = (0, _dom.autoUpdate)(controlElement, menuPortalRef.current, updateComputedPosition, {
447
+ elementResize: 'ResizeObserver' in window
448
+ });
449
+ }
450
+ }, [controlElement, updateComputedPosition]);
451
+ (0, _useIsomorphicLayoutEffect.default)(function () {
452
+ runAutoUpdate();
453
+ }, [runAutoUpdate]);
454
+ var setMenuPortalElement = (0, _react.useCallback)(function (menuPortalElement) {
455
+ menuPortalRef.current = menuPortalElement;
456
+ runAutoUpdate();
457
+ }, [runAutoUpdate]);
458
+
459
+ // bail early if required elements aren't present
460
+ if (!appendTo && menuPosition !== 'fixed' || !computedPosition) {
461
+ return null;
462
+ }
463
+ var _getStyleProps5 = (0, _utils.getStyleProps)(_objectSpread(_objectSpread({}, props), {}, {
464
+ offset: computedPosition.offset,
465
+ position: menuPosition,
466
+ rect: computedPosition.rect
467
+ }), 'menuPortal', {
468
+ 'menu-portal': true
469
+ }),
470
+ css = _getStyleProps5.css,
471
+ className = _getStyleProps5.className;
472
+
473
+ // same wrapper element whether fixed or portalled
474
+ var menuWrapper = /*#__PURE__*/React.createElement("div", (0, _extends2.default)({
475
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop, @atlaskit/ui-styling-standard/local-cx-xcss, @compiled/local-cx-xcss
476
+ className: (0, _runtime.ax)([menuPortalStyles.root, (0, _react2.cx)(className, xcss, '-MenuPortal')]),
477
+ ref: setMenuPortalElement,
478
+ style: _objectSpread({
479
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
480
+ '--menu-left': "".concat(computedPosition.rect.left, "px"),
481
+ '--menu-position': menuPosition,
482
+ '--menu-top': "".concat(computedPosition.offset, "px"),
483
+ '--menu-width': "".concat(computedPosition.rect.width, "px")
484
+ }, css)
485
+ }, innerProps), children);
486
+ return /*#__PURE__*/React.createElement(PortalPlacementContext.Provider, {
487
+ value: portalPlacementContext
488
+ }, appendTo ? /*#__PURE__*/(0, _reactDom.createPortal)(menuWrapper, appendTo) : menuWrapper);
78
489
  };