@atlaskit/react-select 3.14.2 → 3.14.4

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 (348) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/compiled/components/containers.compiled.css +6 -6
  3. package/dist/cjs/compiled/components/containers.js +7 -17
  4. package/dist/cjs/components/containers/indicators-container.compiled.css +5 -0
  5. package/dist/cjs/components/containers/indicators-container.js +36 -0
  6. package/dist/cjs/components/containers/multi-value-container.compiled.css +19 -0
  7. package/dist/cjs/components/containers/multi-value-container.js +34 -0
  8. package/dist/cjs/components/containers/select-container.compiled.css +6 -0
  9. package/dist/cjs/components/containers/select-container.js +43 -0
  10. package/dist/cjs/components/containers/value-container.compiled.css +17 -0
  11. package/dist/cjs/components/containers/value-container.js +46 -0
  12. package/dist/cjs/components/control.js +3 -6
  13. package/dist/cjs/components/{internal/dummy-input.js → dummy-input.js} +22 -5
  14. package/dist/cjs/components/group-heading.compiled.css +9 -0
  15. package/dist/cjs/components/group-heading.js +40 -0
  16. package/dist/cjs/components/group.compiled.css +2 -11
  17. package/dist/cjs/components/group.js +4 -33
  18. package/dist/cjs/components/index.js +31 -21
  19. package/dist/{esm/components/indicators.compiled.css → cjs/components/indicators/clear-indicator.compiled.css} +0 -6
  20. package/dist/cjs/components/indicators/clear-indicator.js +55 -0
  21. package/dist/cjs/components/indicators/dropdown-indicator.compiled.css +13 -0
  22. package/dist/cjs/components/indicators/dropdown-indicator.js +55 -0
  23. package/dist/cjs/components/indicators/loading-indicator.compiled.css +6 -0
  24. package/dist/cjs/components/indicators/loading-indicator.js +55 -0
  25. package/dist/cjs/components/input.js +5 -7
  26. package/dist/cjs/components/live-region.js +1 -1
  27. package/dist/cjs/components/menu-list.compiled.css +5 -0
  28. package/dist/cjs/components/menu-list.js +48 -0
  29. package/dist/cjs/components/menu-loading-message.compiled.css +5 -0
  30. package/dist/cjs/components/menu-loading-message.js +53 -0
  31. package/dist/cjs/components/menu-no-options-message.compiled.css +5 -0
  32. package/dist/cjs/components/menu-no-options-message.js +52 -0
  33. package/dist/cjs/components/menu-placer.js +301 -0
  34. package/dist/cjs/components/menu-portal.compiled.css +5 -0
  35. package/dist/cjs/components/menu-portal.js +132 -0
  36. package/dist/cjs/components/menu.compiled.css +2 -14
  37. package/dist/cjs/components/menu.js +5 -449
  38. package/dist/cjs/components/multi-value-label.compiled.css +10 -0
  39. package/dist/cjs/components/multi-value-label.js +34 -0
  40. package/dist/cjs/components/multi-value-remove.compiled.css +24 -0
  41. package/dist/cjs/components/multi-value-remove.js +40 -0
  42. package/dist/cjs/components/multi-value.compiled.css +0 -30
  43. package/dist/cjs/components/multi-value.js +10 -82
  44. package/dist/cjs/components/option.js +3 -6
  45. package/dist/cjs/components/placeholder.compiled.css +4 -4
  46. package/dist/cjs/components/placeholder.js +4 -7
  47. package/dist/cjs/components/single-value.compiled.css +5 -5
  48. package/dist/cjs/components/single-value.js +4 -7
  49. package/dist/cjs/get-style-props.js +16 -0
  50. package/dist/cjs/internal/classnames.js +42 -0
  51. package/dist/cjs/internal/clean-common-props.js +34 -0
  52. package/dist/cjs/internal/clean-value.js +17 -0
  53. package/dist/cjs/internal/is-document-el.js +9 -0
  54. package/dist/cjs/internal/multi-value-as-value.js +9 -0
  55. package/dist/cjs/internal/passive-event-detector.js +30 -0
  56. package/dist/cjs/internal/portal-placement-context.js +19 -0
  57. package/dist/cjs/internal/scroll-to.js +15 -0
  58. package/dist/cjs/internal/single-value-as-value.js +9 -0
  59. package/dist/cjs/{components/internal → internal}/use-scroll-capture.js +2 -2
  60. package/dist/cjs/internal/value-ternary.js +9 -0
  61. package/dist/cjs/select.compiled.css +3 -0
  62. package/dist/cjs/select.js +132 -35
  63. package/dist/cjs/styles.js +0 -34
  64. package/dist/cjs/use-async.js +10 -2
  65. package/dist/cjs/use-creatable.js +4 -3
  66. package/dist/es2019/compiled/components/containers.compiled.css +6 -6
  67. package/dist/es2019/compiled/components/containers.js +3 -7
  68. package/dist/es2019/components/containers/indicators-container.compiled.css +5 -0
  69. package/dist/es2019/components/containers/indicators-container.js +30 -0
  70. package/dist/es2019/components/containers/multi-value-container.compiled.css +19 -0
  71. package/dist/es2019/components/containers/multi-value-container.js +26 -0
  72. package/dist/es2019/components/containers/select-container.compiled.css +6 -0
  73. package/dist/es2019/components/containers/select-container.js +37 -0
  74. package/dist/es2019/components/containers/value-container.compiled.css +17 -0
  75. package/dist/es2019/components/containers/value-container.js +42 -0
  76. package/dist/es2019/components/control.js +1 -2
  77. package/dist/es2019/components/{internal/dummy-input.js → dummy-input.js} +7 -1
  78. package/dist/es2019/components/group-heading.compiled.css +9 -0
  79. package/dist/es2019/components/group-heading.js +33 -0
  80. package/dist/es2019/components/group.compiled.css +2 -11
  81. package/dist/es2019/components/group.js +2 -29
  82. package/dist/es2019/components/index.js +17 -5
  83. package/dist/{cjs/components/indicators.compiled.css → es2019/components/indicators/clear-indicator.compiled.css} +0 -6
  84. package/dist/es2019/components/indicators/clear-indicator.js +48 -0
  85. package/dist/es2019/components/indicators/dropdown-indicator.compiled.css +13 -0
  86. package/dist/es2019/components/indicators/dropdown-indicator.js +49 -0
  87. package/dist/es2019/components/indicators/loading-indicator.compiled.css +6 -0
  88. package/dist/es2019/components/indicators/loading-indicator.js +43 -0
  89. package/dist/es2019/components/input.js +2 -2
  90. package/dist/es2019/components/live-region.js +1 -1
  91. package/dist/es2019/components/menu-list.compiled.css +5 -0
  92. package/dist/es2019/components/menu-list.js +40 -0
  93. package/dist/es2019/components/menu-loading-message.compiled.css +5 -0
  94. package/dist/es2019/components/menu-loading-message.js +41 -0
  95. package/dist/es2019/components/menu-no-options-message.compiled.css +5 -0
  96. package/dist/es2019/components/menu-no-options-message.js +40 -0
  97. package/dist/es2019/components/menu-placer.js +288 -0
  98. package/dist/es2019/components/menu-portal.compiled.css +5 -0
  99. package/dist/es2019/components/menu-portal.js +115 -0
  100. package/dist/es2019/components/menu.compiled.css +2 -14
  101. package/dist/es2019/components/menu.js +2 -441
  102. package/dist/es2019/components/multi-value-label.compiled.css +10 -0
  103. package/dist/es2019/components/multi-value-label.js +26 -0
  104. package/dist/es2019/components/multi-value-remove.compiled.css +24 -0
  105. package/dist/es2019/components/multi-value-remove.js +32 -0
  106. package/dist/es2019/components/multi-value.compiled.css +0 -30
  107. package/dist/es2019/components/multi-value.js +2 -69
  108. package/dist/es2019/components/option.js +1 -2
  109. package/dist/es2019/components/placeholder.compiled.css +4 -4
  110. package/dist/es2019/components/placeholder.js +2 -3
  111. package/dist/es2019/components/single-value.compiled.css +5 -5
  112. package/dist/es2019/components/single-value.js +2 -3
  113. package/dist/es2019/get-style-props.js +12 -0
  114. package/dist/es2019/internal/classnames.js +29 -0
  115. package/dist/es2019/internal/clean-common-props.js +28 -0
  116. package/dist/es2019/internal/clean-value.js +9 -0
  117. package/dist/es2019/internal/is-document-el.js +3 -0
  118. package/dist/es2019/internal/multi-value-as-value.js +3 -0
  119. package/dist/es2019/internal/passive-event-detector.js +22 -0
  120. package/dist/es2019/internal/portal-placement-context.js +13 -0
  121. package/dist/es2019/internal/scroll-to.js +9 -0
  122. package/dist/es2019/internal/single-value-as-value.js +3 -0
  123. package/dist/es2019/{components/internal → internal}/use-scroll-capture.js +1 -1
  124. package/dist/es2019/internal/value-ternary.js +3 -0
  125. package/dist/es2019/select.compiled.css +3 -0
  126. package/dist/es2019/select.js +110 -15
  127. package/dist/es2019/styles.js +0 -33
  128. package/dist/es2019/use-async.js +9 -1
  129. package/dist/es2019/use-creatable.js +2 -1
  130. package/dist/esm/compiled/components/containers.compiled.css +6 -6
  131. package/dist/esm/compiled/components/containers.js +3 -13
  132. package/dist/esm/components/containers/indicators-container.compiled.css +5 -0
  133. package/dist/esm/components/containers/indicators-container.js +27 -0
  134. package/dist/esm/components/containers/multi-value-container.compiled.css +19 -0
  135. package/dist/esm/components/containers/multi-value-container.js +25 -0
  136. package/dist/esm/components/containers/select-container.compiled.css +6 -0
  137. package/dist/esm/components/containers/select-container.js +34 -0
  138. package/dist/esm/components/containers/value-container.compiled.css +17 -0
  139. package/dist/esm/components/containers/value-container.js +37 -0
  140. package/dist/esm/components/control.js +1 -4
  141. package/dist/esm/components/{internal/dummy-input.js → dummy-input.js} +21 -4
  142. package/dist/esm/components/group-heading.compiled.css +9 -0
  143. package/dist/esm/components/group-heading.js +31 -0
  144. package/dist/esm/components/group.compiled.css +2 -11
  145. package/dist/esm/components/group.js +2 -31
  146. package/dist/esm/components/index.js +17 -5
  147. package/dist/{es2019/components/indicators.compiled.css → esm/components/indicators/clear-indicator.compiled.css} +0 -6
  148. package/dist/esm/components/indicators/clear-indicator.js +46 -0
  149. package/dist/esm/components/indicators/dropdown-indicator.compiled.css +13 -0
  150. package/dist/esm/components/indicators/dropdown-indicator.js +46 -0
  151. package/dist/esm/components/indicators/loading-indicator.compiled.css +6 -0
  152. package/dist/esm/components/indicators/loading-indicator.js +47 -0
  153. package/dist/esm/components/input.js +2 -4
  154. package/dist/esm/components/live-region.js +1 -1
  155. package/dist/esm/components/menu-list.compiled.css +5 -0
  156. package/dist/esm/components/menu-list.js +39 -0
  157. package/dist/esm/components/menu-loading-message.compiled.css +5 -0
  158. package/dist/esm/components/menu-loading-message.js +45 -0
  159. package/dist/esm/components/menu-no-options-message.compiled.css +5 -0
  160. package/dist/esm/components/menu-no-options-message.js +44 -0
  161. package/dist/esm/components/menu-placer.js +294 -0
  162. package/dist/esm/components/menu-portal.compiled.css +5 -0
  163. package/dist/esm/components/menu-portal.js +123 -0
  164. package/dist/esm/components/menu.compiled.css +2 -14
  165. package/dist/esm/components/menu.js +2 -451
  166. package/dist/esm/components/multi-value-label.compiled.css +10 -0
  167. package/dist/esm/components/multi-value-label.js +25 -0
  168. package/dist/esm/components/multi-value-remove.compiled.css +24 -0
  169. package/dist/esm/components/multi-value-remove.js +31 -0
  170. package/dist/esm/components/multi-value.compiled.css +0 -30
  171. package/dist/esm/components/multi-value.js +5 -75
  172. package/dist/esm/components/option.js +1 -4
  173. package/dist/esm/components/placeholder.compiled.css +4 -4
  174. package/dist/esm/components/placeholder.js +2 -5
  175. package/dist/esm/components/single-value.compiled.css +5 -5
  176. package/dist/esm/components/single-value.js +2 -5
  177. package/dist/esm/get-style-props.js +10 -0
  178. package/dist/esm/internal/classnames.js +36 -0
  179. package/dist/esm/internal/clean-common-props.js +27 -0
  180. package/dist/esm/internal/clean-value.js +10 -0
  181. package/dist/esm/internal/is-document-el.js +3 -0
  182. package/dist/esm/internal/multi-value-as-value.js +3 -0
  183. package/dist/esm/internal/passive-event-detector.js +22 -0
  184. package/dist/esm/internal/portal-placement-context.js +13 -0
  185. package/dist/esm/internal/scroll-to.js +9 -0
  186. package/dist/esm/internal/single-value-as-value.js +3 -0
  187. package/dist/esm/{components/internal → internal}/use-scroll-capture.js +1 -1
  188. package/dist/esm/internal/value-ternary.js +3 -0
  189. package/dist/esm/select.compiled.css +3 -0
  190. package/dist/esm/select.js +112 -15
  191. package/dist/esm/styles.js +0 -33
  192. package/dist/esm/use-async.js +9 -1
  193. package/dist/esm/use-creatable.js +2 -1
  194. package/dist/types/async-creatable.d.ts +1 -1
  195. package/dist/types/async.d.ts +1 -1
  196. package/dist/types/builtins.d.ts +1 -1
  197. package/dist/types/compiled/components/containers.d.ts +0 -3
  198. package/dist/types/components/containers/indicators-container.d.ts +18 -0
  199. package/dist/types/components/containers/multi-value-container.d.ts +6 -0
  200. package/dist/types/components/containers/select-container.d.ts +22 -0
  201. package/dist/types/components/containers/value-container.d.ts +22 -0
  202. package/dist/types/components/control.d.ts +0 -1
  203. package/dist/types/components/{internal/dummy-input.d.ts → dummy-input.d.ts} +1 -1
  204. package/dist/types/components/group-heading.d.ts +19 -0
  205. package/dist/types/components/group.d.ts +3 -21
  206. package/dist/types/components/index.d.ts +20 -7
  207. package/dist/types/components/indicators/clear-indicator.d.ts +29 -0
  208. package/dist/types/components/indicators/dropdown-indicator.d.ts +26 -0
  209. package/dist/types/components/indicators/loading-indicator.d.ts +25 -0
  210. package/dist/types/components/input.d.ts +0 -1
  211. package/dist/types/components/menu-list.d.ts +29 -0
  212. package/dist/types/components/menu-loading-message.d.ts +2 -0
  213. package/dist/types/components/menu-no-options-message.d.ts +2 -0
  214. package/dist/types/components/menu-placer.d.ts +49 -0
  215. package/dist/types/components/menu-portal.d.ts +23 -0
  216. package/dist/types/components/menu.d.ts +3 -96
  217. package/dist/types/components/multi-value-label.d.ts +6 -0
  218. package/dist/types/components/multi-value-remove.d.ts +20 -0
  219. package/dist/types/components/multi-value.d.ts +3 -35
  220. package/dist/types/components/option.d.ts +0 -1
  221. package/dist/types/components/placeholder.d.ts +0 -1
  222. package/dist/types/components/single-value.d.ts +0 -1
  223. package/dist/types/creatable.d.ts +1 -1
  224. package/dist/types/get-style-props.d.ts +6 -0
  225. package/dist/types/index.d.ts +14 -5
  226. package/dist/types/internal/classnames.d.ts +2 -0
  227. package/dist/types/internal/clean-common-props.d.ts +2 -0
  228. package/dist/types/internal/clean-value.d.ts +2 -0
  229. package/dist/types/internal/is-document-el.d.ts +1 -0
  230. package/dist/types/internal/multi-value-as-value.d.ts +2 -0
  231. package/dist/types/internal/passive-event-detector.d.ts +1 -0
  232. package/dist/types/internal/portal-placement-context.d.ts +13 -0
  233. package/dist/types/internal/scroll-to.d.ts +1 -0
  234. package/dist/types/internal/single-value-as-value.d.ts +2 -0
  235. package/dist/types/internal/value-ternary.d.ts +2 -0
  236. package/dist/types/select.d.ts +4 -0
  237. package/dist/types/state-manager.d.ts +1 -1
  238. package/dist/types/styles.d.ts +12 -8
  239. package/dist/types/theme.d.ts +1 -1
  240. package/dist/types/types.d.ts +28 -3
  241. package/dist/types/use-async.d.ts +2 -2
  242. package/dist/types/use-creatable.d.ts +1 -1
  243. package/dist/types/use-state-manager.d.ts +2 -2
  244. package/dist/types-ts4.5/async-creatable.d.ts +1 -1
  245. package/dist/types-ts4.5/async.d.ts +1 -1
  246. package/dist/types-ts4.5/builtins.d.ts +1 -1
  247. package/dist/types-ts4.5/compiled/components/containers.d.ts +0 -3
  248. package/dist/types-ts4.5/components/containers/indicators-container.d.ts +18 -0
  249. package/dist/types-ts4.5/components/containers/multi-value-container.d.ts +6 -0
  250. package/dist/types-ts4.5/components/containers/select-container.d.ts +22 -0
  251. package/dist/types-ts4.5/components/containers/value-container.d.ts +22 -0
  252. package/dist/types-ts4.5/components/control.d.ts +0 -1
  253. package/dist/types-ts4.5/components/{internal/dummy-input.d.ts → dummy-input.d.ts} +1 -1
  254. package/dist/types-ts4.5/components/group-heading.d.ts +19 -0
  255. package/dist/types-ts4.5/components/group.d.ts +3 -21
  256. package/dist/types-ts4.5/components/index.d.ts +20 -7
  257. package/dist/types-ts4.5/components/indicators/clear-indicator.d.ts +29 -0
  258. package/dist/types-ts4.5/components/indicators/dropdown-indicator.d.ts +26 -0
  259. package/dist/types-ts4.5/components/indicators/loading-indicator.d.ts +25 -0
  260. package/dist/types-ts4.5/components/input.d.ts +0 -1
  261. package/dist/types-ts4.5/components/menu-list.d.ts +29 -0
  262. package/dist/types-ts4.5/components/menu-loading-message.d.ts +2 -0
  263. package/dist/types-ts4.5/components/menu-no-options-message.d.ts +2 -0
  264. package/dist/types-ts4.5/components/menu-placer.d.ts +49 -0
  265. package/dist/types-ts4.5/components/menu-portal.d.ts +23 -0
  266. package/dist/types-ts4.5/components/menu.d.ts +3 -96
  267. package/dist/types-ts4.5/components/multi-value-label.d.ts +6 -0
  268. package/dist/types-ts4.5/components/multi-value-remove.d.ts +20 -0
  269. package/dist/types-ts4.5/components/multi-value.d.ts +3 -35
  270. package/dist/types-ts4.5/components/option.d.ts +0 -1
  271. package/dist/types-ts4.5/components/placeholder.d.ts +0 -1
  272. package/dist/types-ts4.5/components/single-value.d.ts +0 -1
  273. package/dist/types-ts4.5/creatable.d.ts +1 -1
  274. package/dist/types-ts4.5/get-style-props.d.ts +6 -0
  275. package/dist/types-ts4.5/index.d.ts +14 -5
  276. package/dist/types-ts4.5/internal/classnames.d.ts +2 -0
  277. package/dist/types-ts4.5/internal/clean-common-props.d.ts +2 -0
  278. package/dist/types-ts4.5/internal/clean-value.d.ts +2 -0
  279. package/dist/types-ts4.5/internal/is-document-el.d.ts +1 -0
  280. package/dist/types-ts4.5/internal/multi-value-as-value.d.ts +2 -0
  281. package/dist/types-ts4.5/internal/passive-event-detector.d.ts +1 -0
  282. package/dist/types-ts4.5/internal/portal-placement-context.d.ts +13 -0
  283. package/dist/types-ts4.5/internal/scroll-to.d.ts +1 -0
  284. package/dist/types-ts4.5/internal/single-value-as-value.d.ts +2 -0
  285. package/dist/types-ts4.5/internal/value-ternary.d.ts +2 -0
  286. package/dist/types-ts4.5/select.d.ts +4 -0
  287. package/dist/types-ts4.5/state-manager.d.ts +1 -1
  288. package/dist/types-ts4.5/styles.d.ts +12 -8
  289. package/dist/types-ts4.5/theme.d.ts +1 -1
  290. package/dist/types-ts4.5/types.d.ts +28 -3
  291. package/dist/types-ts4.5/use-async.d.ts +2 -2
  292. package/dist/types-ts4.5/use-creatable.d.ts +1 -1
  293. package/dist/types-ts4.5/use-state-manager.d.ts +2 -2
  294. package/package.json +6 -6
  295. package/dist/cjs/components/containers.compiled.css +0 -25
  296. package/dist/cjs/components/containers.js +0 -116
  297. package/dist/cjs/components/indicators.js +0 -155
  298. package/dist/cjs/utils.js +0 -391
  299. package/dist/es2019/components/containers.compiled.css +0 -25
  300. package/dist/es2019/components/containers.js +0 -113
  301. package/dist/es2019/components/indicators.js +0 -143
  302. package/dist/es2019/utils.js +0 -344
  303. package/dist/esm/components/containers.compiled.css +0 -25
  304. package/dist/esm/components/containers.js +0 -108
  305. package/dist/esm/components/indicators.js +0 -148
  306. package/dist/esm/utils.js +0 -364
  307. package/dist/types/components/containers.d.ts +0 -53
  308. package/dist/types/components/indicators.d.ts +0 -72
  309. package/dist/types/utils.d.ts +0 -40
  310. package/dist/types-ts4.5/components/containers.d.ts +0 -53
  311. package/dist/types-ts4.5/components/indicators.d.ts +0 -72
  312. package/dist/types-ts4.5/utils.d.ts +0 -40
  313. /package/dist/cjs/components/{internal/dummy-input.compiled.css → dummy-input.compiled.css} +0 -0
  314. /package/dist/cjs/{components/internal → internal}/a11y-text.compiled.css +0 -0
  315. /package/dist/cjs/{components/internal → internal}/a11y-text.js +0 -0
  316. /package/dist/cjs/{components/internal → internal}/notify-open-layer-observer.js +0 -0
  317. /package/dist/cjs/{components/internal → internal}/required-input.compiled.css +0 -0
  318. /package/dist/cjs/{components/internal → internal}/required-input.js +0 -0
  319. /package/dist/cjs/{components/internal → internal}/scroll-manager.js +0 -0
  320. /package/dist/cjs/{components/internal → internal}/use-scroll-lock.js +0 -0
  321. /package/dist/es2019/components/{internal/dummy-input.compiled.css → dummy-input.compiled.css} +0 -0
  322. /package/dist/es2019/{components/internal → internal}/a11y-text.compiled.css +0 -0
  323. /package/dist/es2019/{components/internal → internal}/a11y-text.js +0 -0
  324. /package/dist/es2019/{components/internal → internal}/notify-open-layer-observer.js +0 -0
  325. /package/dist/es2019/{components/internal → internal}/required-input.compiled.css +0 -0
  326. /package/dist/es2019/{components/internal → internal}/required-input.js +0 -0
  327. /package/dist/es2019/{components/internal → internal}/scroll-manager.js +0 -0
  328. /package/dist/es2019/{components/internal → internal}/use-scroll-lock.js +0 -0
  329. /package/dist/esm/components/{internal/dummy-input.compiled.css → dummy-input.compiled.css} +0 -0
  330. /package/dist/esm/{components/internal → internal}/a11y-text.compiled.css +0 -0
  331. /package/dist/esm/{components/internal → internal}/a11y-text.js +0 -0
  332. /package/dist/esm/{components/internal → internal}/notify-open-layer-observer.js +0 -0
  333. /package/dist/esm/{components/internal → internal}/required-input.compiled.css +0 -0
  334. /package/dist/esm/{components/internal → internal}/required-input.js +0 -0
  335. /package/dist/esm/{components/internal → internal}/scroll-manager.js +0 -0
  336. /package/dist/esm/{components/internal → internal}/use-scroll-lock.js +0 -0
  337. /package/dist/types/{components/internal → internal}/a11y-text.d.ts +0 -0
  338. /package/dist/types/{components/internal → internal}/notify-open-layer-observer.d.ts +0 -0
  339. /package/dist/types/{components/internal → internal}/required-input.d.ts +0 -0
  340. /package/dist/types/{components/internal → internal}/scroll-manager.d.ts +0 -0
  341. /package/dist/types/{components/internal → internal}/use-scroll-capture.d.ts +0 -0
  342. /package/dist/types/{components/internal → internal}/use-scroll-lock.d.ts +0 -0
  343. /package/dist/types-ts4.5/{components/internal → internal}/a11y-text.d.ts +0 -0
  344. /package/dist/types-ts4.5/{components/internal → internal}/notify-open-layer-observer.d.ts +0 -0
  345. /package/dist/types-ts4.5/{components/internal → internal}/required-input.d.ts +0 -0
  346. /package/dist/types-ts4.5/{components/internal → internal}/scroll-manager.d.ts +0 -0
  347. /package/dist/types-ts4.5/{components/internal → internal}/use-scroll-capture.d.ts +0 -0
  348. /package/dist/types-ts4.5/{components/internal → internal}/use-scroll-lock.d.ts +0 -0
@@ -0,0 +1,45 @@
1
+ /* menu-loading-message.tsx generated by @compiled/babel-plugin v0.39.1 */
2
+ import _extends from "@babel/runtime/helpers/extends";
3
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
+ var _excluded = ["children", "innerProps", "xcss"];
6
+ import "./menu-loading-message.compiled.css";
7
+ import * as React from 'react';
8
+ import { ax, ix } from "@compiled/react/runtime";
9
+ 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; }
10
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
+ import { cx } from '@compiled/react';
12
+ import { Text } from '@atlaskit/primitives/compiled';
13
+ import { getStyleProps } from '../get-style-props';
14
+ var noticeStyles = null;
15
+
16
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
17
+ var LoadingMessage = function LoadingMessage(_ref) {
18
+ var _ref$children = _ref.children,
19
+ children = _ref$children === void 0 ? 'Loading...' : _ref$children,
20
+ innerProps = _ref.innerProps,
21
+ xcss = _ref.xcss,
22
+ restProps = _objectWithoutProperties(_ref, _excluded);
23
+ var _getStyleProps = getStyleProps(_objectSpread(_objectSpread({}, restProps), {}, {
24
+ children: children,
25
+ innerProps: innerProps
26
+ }), 'loadingMessage', {
27
+ 'menu-notice': true,
28
+ 'menu-notice--loading': true
29
+ }),
30
+ css = _getStyleProps.css,
31
+ className = _getStyleProps.className;
32
+ return /*#__PURE__*/React.createElement("div", _extends({
33
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop, @atlaskit/ui-styling-standard/local-cx-xcss, @compiled/local-cx-xcss
34
+ className: ax(["_85i5u2gc _1q51u2gc _y4tiutpp _bozgutpp _y3gn1h6o", cx(className, xcss, '-LoadingMessage')])
35
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
36
+ ,
37
+ style: css
38
+ }, innerProps, {
39
+ // eslint-disable-next-line @atlassian/a11y/role-has-required-aria-props
40
+ role: "option"
41
+ }), /*#__PURE__*/React.createElement(Text, {
42
+ color: "color.text.subtle"
43
+ }, children));
44
+ };
45
+ export { LoadingMessage };
@@ -0,0 +1,5 @@
1
+ ._1q51u2gc{padding-block-start:var(--ds-space-100,8px)}
2
+ ._85i5u2gc{padding-block-end:var(--ds-space-100,8px)}
3
+ ._bozgutpp{padding-inline-start:var(--ds-space-150,9pt)}
4
+ ._y3gn1h6o{text-align:center}
5
+ ._y4tiutpp{padding-inline-end:var(--ds-space-150,9pt)}
@@ -0,0 +1,44 @@
1
+ /* menu-no-options-message.tsx generated by @compiled/babel-plugin v0.39.1 */
2
+ import _extends from "@babel/runtime/helpers/extends";
3
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
5
+ var _excluded = ["children", "innerProps", "xcss"];
6
+ import "./menu-no-options-message.compiled.css";
7
+ import * as React from 'react';
8
+ import { ax, ix } from "@compiled/react/runtime";
9
+ 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; }
10
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
+ import { cx } from '@compiled/react';
12
+ import { Text } from '@atlaskit/primitives/compiled';
13
+ import { getStyleProps } from '../get-style-props';
14
+ var noticeStyles = null;
15
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
16
+ var NoOptionsMessage = function NoOptionsMessage(_ref) {
17
+ var _ref$children = _ref.children,
18
+ children = _ref$children === void 0 ? 'No options' : _ref$children,
19
+ innerProps = _ref.innerProps,
20
+ xcss = _ref.xcss,
21
+ restProps = _objectWithoutProperties(_ref, _excluded);
22
+ var _getStyleProps = getStyleProps(_objectSpread(_objectSpread({}, restProps), {}, {
23
+ children: children,
24
+ innerProps: innerProps
25
+ }), 'noOptionsMessage', {
26
+ 'menu-notice': true,
27
+ 'menu-notice--no-options': true
28
+ }),
29
+ css = _getStyleProps.css,
30
+ className = _getStyleProps.className;
31
+ return /*#__PURE__*/React.createElement("div", _extends({
32
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop, @atlaskit/ui-styling-standard/local-cx-xcss, @compiled/local-cx-xcss
33
+ className: ax(["_85i5u2gc _1q51u2gc _y4tiutpp _bozgutpp _y3gn1h6o", cx(className, xcss, '-NoOptionsMessage')])
34
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
35
+ ,
36
+ style: css
37
+ // eslint-disable-next-line @atlassian/a11y/role-has-required-aria-props
38
+ ,
39
+ role: "option"
40
+ }, innerProps), /*#__PURE__*/React.createElement(Text, {
41
+ color: "color.text.subtle"
42
+ }, children));
43
+ };
44
+ export { NoOptionsMessage };
@@ -0,0 +1,294 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ 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; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
+ import { useContext, useLayoutEffect, useRef, useState } from 'react';
6
+ import __noop from '@atlaskit/ds-lib/noop';
7
+ import { PortalPlacementContext } from '../internal/portal-placement-context';
8
+ var noop = __noop;
9
+ function getScrollParent(element) {
10
+ var style = getComputedStyle(element);
11
+ var excludeStaticParent = style.position === 'absolute';
12
+ var overflowRx = /(auto|scroll)/;
13
+ if (style.position === 'fixed') {
14
+ return document.documentElement;
15
+ }
16
+ for (var parent = element; parent = parent.parentElement;) {
17
+ style = getComputedStyle(parent);
18
+ if (excludeStaticParent && style.position === 'static') {
19
+ continue;
20
+ }
21
+ if (overflowRx.test(style.overflow + style.overflowY + style.overflowX)) {
22
+ return parent;
23
+ }
24
+ }
25
+ return document.documentElement;
26
+ }
27
+ function isDocumentElement(el) {
28
+ return [document.documentElement, document.body, window].indexOf(el) > -1;
29
+ }
30
+ function normalizedHeight(el) {
31
+ if (isDocumentElement(el)) {
32
+ return window.innerHeight;
33
+ }
34
+ return el.clientHeight;
35
+ }
36
+ function scrollTo(el, top) {
37
+ // with a scroll distance, we perform scroll on the element
38
+ if (isDocumentElement(el)) {
39
+ window.scrollTo(0, top);
40
+ return;
41
+ }
42
+ el.scrollTop = top;
43
+ }
44
+ function easeOutCubic(t, b, c, d) {
45
+ return c * ((t = t / d - 1) * t * t + 1) + b;
46
+ }
47
+ function getScrollTop(el) {
48
+ if (isDocumentElement(el)) {
49
+ return window.pageYOffset;
50
+ }
51
+ return el.scrollTop;
52
+ }
53
+ function animatedScrollTo(element, to) {
54
+ var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;
55
+ var callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : noop;
56
+ var start = getScrollTop(element);
57
+ var change = to - start;
58
+ var increment = 10;
59
+ var currentTime = 0;
60
+ function animateScroll() {
61
+ currentTime += increment;
62
+ var val = easeOutCubic(currentTime, start, change, duration);
63
+ scrollTo(element, val);
64
+ if (currentTime < duration) {
65
+ window.requestAnimationFrame(animateScroll);
66
+ } else {
67
+ callback(element);
68
+ }
69
+ }
70
+ animateScroll();
71
+ }
72
+ function getMenuPlacement(_ref) {
73
+ var preferredMaxHeight = _ref.maxHeight,
74
+ menuEl = _ref.menuEl,
75
+ minHeight = _ref.minHeight,
76
+ preferredPlacement = _ref.placement,
77
+ shouldScroll = _ref.shouldScroll,
78
+ isFixedPosition = _ref.isFixedPosition,
79
+ controlHeight = _ref.controlHeight;
80
+ var scrollParent = getScrollParent(menuEl);
81
+ var defaultState = {
82
+ placement: 'bottom',
83
+ maxHeight: preferredMaxHeight
84
+ };
85
+
86
+ // something went wrong, return default state
87
+ if (!menuEl || !menuEl.offsetParent) {
88
+ return defaultState;
89
+ }
90
+
91
+ // we can't trust `scrollParent.scrollHeight` --> it may increase when
92
+ // the menu is rendered
93
+ var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),
94
+ scrollHeight = _scrollParent$getBoun.height;
95
+ var _menuEl$getBoundingCl = menuEl.getBoundingClientRect(),
96
+ menuBottom = _menuEl$getBoundingCl.bottom,
97
+ menuHeight = _menuEl$getBoundingCl.height,
98
+ menuTop = _menuEl$getBoundingCl.top;
99
+ var _menuEl$offsetParent$ = menuEl.offsetParent.getBoundingClientRect(),
100
+ containerTop = _menuEl$offsetParent$.top;
101
+ var viewHeight = isFixedPosition ? window.innerHeight : normalizedHeight(scrollParent);
102
+ var scrollTop = getScrollTop(scrollParent);
103
+ var menuTopFromParent = menuTop;
104
+ var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);
105
+ var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);
106
+ var viewSpaceAbove = containerTop - marginTop;
107
+ var viewSpaceBelow = viewHeight - menuTopFromParent;
108
+ var scrollSpaceAbove = viewSpaceAbove + scrollTop;
109
+ var scrollSpaceBelow = scrollHeight - scrollTop - menuTopFromParent;
110
+ var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;
111
+ var scrollUp = scrollTop + menuTop - marginTop;
112
+ var scrollDuration = 160;
113
+ switch (preferredPlacement) {
114
+ case 'auto':
115
+ case 'bottom':
116
+ // 1: the menu will fit, do nothing
117
+ if (viewSpaceBelow >= menuHeight) {
118
+ return {
119
+ placement: 'bottom',
120
+ maxHeight: preferredMaxHeight
121
+ };
122
+ }
123
+
124
+ // 2: the menu will fit, if scrolled
125
+ if (scrollSpaceBelow >= menuHeight && !isFixedPosition) {
126
+ if (shouldScroll) {
127
+ animatedScrollTo(scrollParent, scrollDown, scrollDuration);
128
+ }
129
+ return {
130
+ placement: 'bottom',
131
+ maxHeight: preferredMaxHeight
132
+ };
133
+ }
134
+
135
+ // 3: the menu will fit, if constrained
136
+ if (!isFixedPosition && scrollSpaceBelow >= minHeight || isFixedPosition && viewSpaceBelow >= minHeight) {
137
+ if (shouldScroll) {
138
+ animatedScrollTo(scrollParent, scrollDown, scrollDuration);
139
+ }
140
+
141
+ // we want to provide as much of the menu as possible to the user,
142
+ // so give them whatever is available below rather than the minHeight.
143
+ var constrainedHeight = isFixedPosition ? viewSpaceBelow - marginBottom : scrollSpaceBelow - marginBottom;
144
+ return {
145
+ placement: 'bottom',
146
+ maxHeight: constrainedHeight
147
+ };
148
+ }
149
+
150
+ // 4. Forked beviour when there isn't enough space below
151
+
152
+ // AUTO: flip the menu, render above
153
+ if (preferredPlacement === 'auto' || isFixedPosition) {
154
+ // may need to be constrained after flipping
155
+ var _constrainedHeight = preferredMaxHeight;
156
+ var spaceAbove = isFixedPosition ? viewSpaceAbove : scrollSpaceAbove;
157
+ if (spaceAbove >= minHeight) {
158
+ _constrainedHeight = Math.min(spaceAbove - marginBottom - controlHeight, preferredMaxHeight);
159
+ }
160
+ return {
161
+ placement: 'top',
162
+ maxHeight: _constrainedHeight
163
+ };
164
+ }
165
+
166
+ // BOTTOM: allow browser to increase scrollable area and immediately set scroll
167
+ if (preferredPlacement === 'bottom') {
168
+ if (shouldScroll) {
169
+ scrollTo(scrollParent, scrollDown);
170
+ }
171
+ return {
172
+ placement: 'bottom',
173
+ maxHeight: preferredMaxHeight
174
+ };
175
+ }
176
+ break;
177
+ case 'top':
178
+ // 1: the menu will fit, do nothing
179
+ if (viewSpaceAbove >= menuHeight) {
180
+ return {
181
+ placement: 'top',
182
+ maxHeight: preferredMaxHeight
183
+ };
184
+ }
185
+
186
+ // 2: the menu will fit, if scrolled
187
+ if (scrollSpaceAbove >= menuHeight && !isFixedPosition) {
188
+ if (shouldScroll) {
189
+ animatedScrollTo(scrollParent, scrollUp, scrollDuration);
190
+ }
191
+ return {
192
+ placement: 'top',
193
+ maxHeight: preferredMaxHeight
194
+ };
195
+ }
196
+
197
+ // 3: the menu will fit, if constrained
198
+ if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {
199
+ var _constrainedHeight2 = preferredMaxHeight;
200
+
201
+ // we want to provide as much of the menu as possible to the user,
202
+ // so give them whatever is available below rather than the minHeight.
203
+ if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {
204
+ _constrainedHeight2 = isFixedPosition ? viewSpaceAbove - marginTop : scrollSpaceAbove - marginTop;
205
+ }
206
+ if (shouldScroll) {
207
+ animatedScrollTo(scrollParent, scrollUp, scrollDuration);
208
+ }
209
+ return {
210
+ placement: 'top',
211
+ maxHeight: _constrainedHeight2
212
+ };
213
+ }
214
+
215
+ // 4. not enough space, the browser WILL NOT increase scrollable area when
216
+ // absolutely positioned element rendered above the viewport (only below).
217
+ // Flip the menu, render below
218
+ return {
219
+ placement: 'bottom',
220
+ maxHeight: preferredMaxHeight
221
+ };
222
+ default:
223
+ throw new Error("Invalid placement provided \"".concat(preferredPlacement, "\"."));
224
+ }
225
+ return defaultState;
226
+ }
227
+ var coercePlacement = function coercePlacement(p) {
228
+ return p === 'auto' ? 'bottom' : p;
229
+ };
230
+
231
+ // NOTE: internal only
232
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
233
+ // TODO: Fill in the component {description} and ensure links point to the correct {packageName} location.
234
+ // Remove links that the component does not have (such as usage). If there are no links remove them all.
235
+ /**
236
+ * __Menu placer__
237
+ *
238
+ * A menu placer {description}.
239
+ *
240
+ * - [Examples](https://atlassian.design/components/{packageName}/examples)
241
+ * - [Code](https://atlassian.design/components/{packageName}/code)
242
+ * - [Usage](https://atlassian.design/components/{packageName}/usage)
243
+ */
244
+ var MenuPlacer = function MenuPlacer(props) {
245
+ var children = props.children,
246
+ minMenuHeight = props.minMenuHeight,
247
+ maxMenuHeight = props.maxMenuHeight,
248
+ menuPlacement = props.menuPlacement,
249
+ menuPosition = props.menuPosition,
250
+ menuShouldScrollIntoView = props.menuShouldScrollIntoView;
251
+ var _ref2 = useContext(PortalPlacementContext) || {},
252
+ setPortalPlacement = _ref2.setPortalPlacement;
253
+ var ref = useRef(null);
254
+ var _useState = useState(maxMenuHeight),
255
+ _useState2 = _slicedToArray(_useState, 2),
256
+ maxHeight = _useState2[0],
257
+ setMaxHeight = _useState2[1];
258
+ var _useState3 = useState(null),
259
+ _useState4 = _slicedToArray(_useState3, 2),
260
+ placement = _useState4[0],
261
+ setPlacement = _useState4[1];
262
+ // The minimum height of the control
263
+ var controlHeight = 38;
264
+ useLayoutEffect(function () {
265
+ var menuEl = ref.current;
266
+ if (!menuEl) {
267
+ return;
268
+ }
269
+
270
+ // DO NOT scroll if position is fixed
271
+ var isFixedPosition = menuPosition === 'fixed';
272
+ var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;
273
+ var state = getMenuPlacement({
274
+ maxHeight: maxMenuHeight,
275
+ menuEl: menuEl,
276
+ minHeight: minMenuHeight,
277
+ placement: menuPlacement,
278
+ shouldScroll: shouldScroll,
279
+ isFixedPosition: isFixedPosition,
280
+ controlHeight: controlHeight
281
+ });
282
+ setMaxHeight(state.maxHeight);
283
+ setPlacement(state.placement);
284
+ setPortalPlacement === null || setPortalPlacement === void 0 || setPortalPlacement(state.placement);
285
+ }, [maxMenuHeight, menuPlacement, menuPosition, menuShouldScrollIntoView, minMenuHeight, setPortalPlacement, controlHeight]);
286
+ return children({
287
+ ref: ref,
288
+ placerProps: _objectSpread(_objectSpread({}, props), {}, {
289
+ placement: placement || coercePlacement(menuPlacement),
290
+ maxHeight: maxHeight
291
+ })
292
+ });
293
+ };
294
+ export default MenuPlacer;
@@ -0,0 +1,5 @@
1
+ ._152t1nmo{inset-block-start:var(--menu-top)}
2
+ ._1bsb1qxj{width:var(--menu-width)}
3
+ ._1e02a1vk{inset-inline-start:var(--menu-left)}
4
+ ._1pbykb7n{z-index:1}
5
+ ._kqswcp1v{position:var(--menu-position)}
@@ -0,0 +1,123 @@
1
+ /* menu-portal.tsx generated by @compiled/babel-plugin v0.39.1 */
2
+ import _extends from "@babel/runtime/helpers/extends";
3
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
4
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
5
+ import "./menu-portal.compiled.css";
6
+ import * as React from 'react';
7
+ import { ax, ix } from "@compiled/react/runtime";
8
+ 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; }
9
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
+ import { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';
11
+ import { cx } from '@compiled/react';
12
+ import { autoUpdate } from '@floating-ui/dom';
13
+ import { createPortal } from 'react-dom';
14
+ import { getStyleProps } from '../get-style-props';
15
+ import { PortalPlacementContext } from '../internal/portal-placement-context';
16
+ function getBoundingClientObj(element) {
17
+ var rect = element.getBoundingClientRect();
18
+ return {
19
+ bottom: rect.bottom,
20
+ height: rect.height,
21
+ left: rect.left,
22
+ right: rect.right,
23
+ top: rect.top,
24
+ width: rect.width
25
+ };
26
+ }
27
+ var coercePlacement = function coercePlacement(p) {
28
+ return p === 'auto' ? 'bottom' : p;
29
+ };
30
+ var menuPortalStyles = {
31
+ root: "_1pbykb7n _1e02a1vk _kqswcp1v _152t1nmo _1bsb1qxj"
32
+ };
33
+ // eslint-disable-next-line @repo/internal/react/require-jsdoc
34
+ export var MenuPortal = function MenuPortal(props) {
35
+ var appendTo = props.appendTo,
36
+ children = props.children,
37
+ controlElement = props.controlElement,
38
+ innerProps = props.innerProps,
39
+ menuPlacement = props.menuPlacement,
40
+ menuPosition = props.menuPosition,
41
+ xcss = props.xcss;
42
+ var menuPortalRef = useRef(null);
43
+ var cleanupRef = useRef(null);
44
+ var _useState = useState(coercePlacement(menuPlacement)),
45
+ _useState2 = _slicedToArray(_useState, 2),
46
+ placement = _useState2[0],
47
+ setPortalPlacement = _useState2[1];
48
+ var portalPlacementContext = useMemo(function () {
49
+ return {
50
+ setPortalPlacement: setPortalPlacement
51
+ };
52
+ }, []);
53
+ var _useState3 = useState(null),
54
+ _useState4 = _slicedToArray(_useState3, 2),
55
+ computedPosition = _useState4[0],
56
+ setComputedPosition = _useState4[1];
57
+ var updateComputedPosition = useCallback(function () {
58
+ if (!controlElement) {
59
+ return;
60
+ }
61
+ var rect = getBoundingClientObj(controlElement);
62
+ var scrollDistance = menuPosition === 'fixed' ? 0 : window.pageYOffset;
63
+ var offset = rect[placement] + scrollDistance;
64
+ 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)) {
65
+ setComputedPosition({
66
+ offset: offset,
67
+ rect: rect
68
+ });
69
+ }
70
+ }, [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]);
71
+ useLayoutEffect(function () {
72
+ updateComputedPosition();
73
+ }, [updateComputedPosition]);
74
+ var runAutoUpdate = useCallback(function () {
75
+ if (typeof cleanupRef.current === 'function') {
76
+ cleanupRef.current();
77
+ cleanupRef.current = null;
78
+ }
79
+ if (controlElement && menuPortalRef.current) {
80
+ cleanupRef.current = autoUpdate(controlElement, menuPortalRef.current, updateComputedPosition, {
81
+ elementResize: 'ResizeObserver' in window
82
+ });
83
+ }
84
+ }, [controlElement, updateComputedPosition]);
85
+ useLayoutEffect(function () {
86
+ runAutoUpdate();
87
+ }, [runAutoUpdate]);
88
+ var setMenuPortalElement = useCallback(function (menuPortalElement) {
89
+ menuPortalRef.current = menuPortalElement;
90
+ runAutoUpdate();
91
+ }, [runAutoUpdate]);
92
+
93
+ // bail early if required elements aren't present
94
+ if (!appendTo && menuPosition !== 'fixed' || !computedPosition) {
95
+ return null;
96
+ }
97
+ var _getStyleProps = getStyleProps(_objectSpread(_objectSpread({}, props), {}, {
98
+ offset: computedPosition.offset,
99
+ position: menuPosition,
100
+ rect: computedPosition.rect
101
+ }), 'menuPortal', {
102
+ 'menu-portal': true
103
+ }),
104
+ css = _getStyleProps.css,
105
+ className = _getStyleProps.className;
106
+
107
+ // same wrapper element whether fixed or portalled
108
+ var menuWrapper = /*#__PURE__*/React.createElement("div", _extends({
109
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop, @atlaskit/ui-styling-standard/local-cx-xcss, @compiled/local-cx-xcss
110
+ className: ax([menuPortalStyles.root, cx(className, xcss, '-MenuPortal')]),
111
+ ref: setMenuPortalElement,
112
+ style: _objectSpread({
113
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/enforce-style-prop
114
+ '--menu-left': "".concat(computedPosition.rect.left, "px"),
115
+ '--menu-position': menuPosition,
116
+ '--menu-top': "".concat(computedPosition.offset, "px"),
117
+ '--menu-width': "".concat(computedPosition.rect.width, "px")
118
+ }, css)
119
+ }, innerProps), children);
120
+ return /*#__PURE__*/React.createElement(PortalPlacementContext.Provider, {
121
+ value: portalPlacementContext
122
+ }, appendTo ? /*#__PURE__*/createPortal(menuWrapper, appendTo) : menuWrapper);
123
+ };
@@ -1,23 +1,11 @@
1
1
 
2
2
  ._2rko12b0{border-radius:var(--ds-radius-small,4px)}
3
- ._2rko1mok{border-radius:var(--ds-radius-large,8px)}._152t1nmo{inset-block-start:var(--menu-top)}
4
- ._152t1osq{inset-block-start:100%}
3
+ ._2rko1mok{border-radius:var(--ds-radius-large,8px)}._152t1osq{inset-block-start:100%}
5
4
  ._16qsd0yg{box-shadow:var(--ds-shadow-overlay,0 0 0 1px rgba(0,0,0,.1),0 4px 11px rgba(0,0,0,.1))}
6
- ._18m91wug{overflow-y:auto}
7
5
  ._1bsb1osq{width:100%}
8
- ._1bsb1qxj{width:var(--menu-width)}
9
- ._1e02a1vk{inset-inline-start:var(--menu-left)}
10
6
  ._1pbykb7n{z-index:1}
11
7
  ._1pfhu2gc{margin-block-start:var(--ds-space-100,8px)}
12
- ._1q51u2gc{padding-block-start:var(--ds-space-100,8px)}
13
8
  ._6rthu2gc{margin-block-end:var(--ds-space-100,8px)}
14
- ._85i5u2gc{padding-block-end:var(--ds-space-100,8px)}
15
- ._8am5i4x0{-webkit-overflow-scrolling:touch}
16
9
  ._bfhk1bhr{background-color:var(--ds-surface-overlay,#fff)}
17
- ._bozgutpp{padding-inline-start:var(--ds-space-150,9pt)}
18
- ._kqswcp1v{position:var(--menu-position)}
19
- ._kqswh2mm{position:relative}
20
10
  ._kqswstnw{position:absolute}
21
- ._u7co1osq{inset-block-end:100%}
22
- ._y3gn1h6o{text-align:center}
23
- ._y4tiutpp{padding-inline-end:var(--ds-space-150,9pt)}
11
+ ._u7co1osq{inset-block-end:100%}