baseui 10.10.0 → 10.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (868) hide show
  1. package/a11y/a11y.js +1 -1
  2. package/a11y/a11y.js.flow +15 -18
  3. package/a11y/index.js.flow +1 -1
  4. package/a11y/types.js.flow +2 -2
  5. package/accordion/accordion.js +3 -2
  6. package/accordion/accordion.js.flow +18 -32
  7. package/accordion/index.js.flow +6 -6
  8. package/accordion/panel.js +1 -1
  9. package/accordion/panel.js.flow +24 -42
  10. package/accordion/stateful-panel-container.js.flow +7 -12
  11. package/accordion/stateful-panel.js.flow +3 -3
  12. package/accordion/stateless-accordion.js.flow +6 -6
  13. package/accordion/styled-components.js.flow +16 -16
  14. package/accordion/types.js.flow +9 -9
  15. package/app-nav-bar/app-nav-bar.js.flow +20 -36
  16. package/app-nav-bar/index.js.flow +3 -3
  17. package/app-nav-bar/mobile-menu.js +9 -13
  18. package/app-nav-bar/mobile-menu.js.flow +29 -62
  19. package/app-nav-bar/styled-components.js.flow +40 -44
  20. package/app-nav-bar/types.js.flow +11 -11
  21. package/app-nav-bar/user-menu.js +8 -9
  22. package/app-nav-bar/user-menu.js.flow +32 -57
  23. package/app-nav-bar/user-profile-tile.js.flow +12 -24
  24. package/app-nav-bar/utils.js.flow +9 -12
  25. package/aspect-ratio-box/aspect-ratio-box-body.js.flow +2 -2
  26. package/aspect-ratio-box/aspect-ratio-box.js +2 -2
  27. package/aspect-ratio-box/aspect-ratio-box.js.flow +11 -13
  28. package/aspect-ratio-box/index.js.flow +2 -2
  29. package/aspect-ratio-box/types.js.flow +1 -1
  30. package/avatar/avatar.js.flow +7 -21
  31. package/avatar/index.js.flow +1 -1
  32. package/avatar/styled-components.js.flow +7 -11
  33. package/avatar/types.js.flow +3 -3
  34. package/block/block.js +1 -1
  35. package/block/block.js.flow +8 -11
  36. package/block/index.js.flow +1 -1
  37. package/block/styled-components.js.flow +37 -36
  38. package/block/types.js.flow +3 -2
  39. package/breadcrumbs/breadcrumbs.js +3 -6
  40. package/breadcrumbs/breadcrumbs.js.flow +17 -35
  41. package/breadcrumbs/index.d.ts +1 -0
  42. package/breadcrumbs/index.js.flow +1 -1
  43. package/breadcrumbs/styled-components.js.flow +5 -5
  44. package/breadcrumbs/types.js.flow +3 -2
  45. package/button/button-internals.js.flow +7 -10
  46. package/button/button.js +2 -1
  47. package/button/button.js.flow +25 -36
  48. package/button/default-props.js.flow +1 -1
  49. package/button/index.d.ts +6 -0
  50. package/button/index.js.flow +2 -2
  51. package/button/styled-components.js +19 -5
  52. package/button/styled-components.js.flow +89 -82
  53. package/button/types.js.flow +13 -4
  54. package/button/utils.js +3 -1
  55. package/button/utils.js.flow +4 -2
  56. package/button-group/button-group.js +1 -1
  57. package/button-group/button-group.js.flow +15 -17
  58. package/button-group/index.d.ts +1 -0
  59. package/button-group/index.js.flow +6 -6
  60. package/button-group/stateful-button-group.js +5 -1
  61. package/button-group/stateful-button-group.js.flow +4 -3
  62. package/button-group/stateful-container.js.flow +14 -26
  63. package/button-group/styled-components.js.flow +5 -5
  64. package/button-group/types.js.flow +9 -12
  65. package/card/card.js.flow +12 -30
  66. package/card/index.js.flow +1 -1
  67. package/card/styled-components.js.flow +8 -8
  68. package/card/types.js.flow +3 -3
  69. package/checkbox/checkbox.js +2 -3
  70. package/checkbox/checkbox.js.flow +24 -39
  71. package/checkbox/index.d.ts +1 -0
  72. package/checkbox/index.js.flow +4 -4
  73. package/checkbox/stateful-checkbox-container.js.flow +14 -17
  74. package/checkbox/stateful-checkbox.js.flow +5 -5
  75. package/checkbox/styled-components.js.flow +27 -50
  76. package/checkbox/types.js.flow +26 -7
  77. package/combobox/combobox.js +4 -4
  78. package/combobox/combobox.js.flow +24 -36
  79. package/combobox/index.js.flow +2 -2
  80. package/combobox/styled-components.js.flow +23 -20
  81. package/combobox/types.js.flow +7 -5
  82. package/data-table/column-anchor.js.flow +8 -8
  83. package/data-table/column-boolean.js.flow +15 -20
  84. package/data-table/column-categorical.js.flow +26 -31
  85. package/data-table/column-custom.js +1 -0
  86. package/data-table/column-custom.js.flow +6 -10
  87. package/data-table/column-datetime.js +6 -6
  88. package/data-table/column-datetime.js.flow +66 -114
  89. package/data-table/column-numerical.js.flow +38 -46
  90. package/data-table/column-row-index.js.flow +3 -3
  91. package/data-table/column-string.js.flow +8 -8
  92. package/data-table/column.js +1 -0
  93. package/data-table/column.js.flow +7 -8
  94. package/data-table/constants.js.flow +1 -1
  95. package/data-table/data-table.js +4 -4
  96. package/data-table/data-table.js.flow +76 -124
  97. package/data-table/filter-menu.js.flow +26 -37
  98. package/data-table/filter-shell.js.flow +6 -6
  99. package/data-table/header-cell.js.flow +112 -122
  100. package/data-table/index.js.flow +15 -24
  101. package/data-table/measure-column-widths.js.flow +9 -17
  102. package/data-table/stateful-container.js.flow +13 -22
  103. package/data-table/stateful-data-table.js.flow +21 -27
  104. package/data-table/text-search.js.flow +3 -3
  105. package/data-table/types.js.flow +17 -20
  106. package/datepicker/calendar-header.js +4 -7
  107. package/datepicker/calendar-header.js.flow +105 -174
  108. package/datepicker/calendar.js +2 -1
  109. package/datepicker/calendar.js.flow +99 -139
  110. package/datepicker/datepicker.js +1 -1
  111. package/datepicker/datepicker.js.flow +84 -159
  112. package/datepicker/day.js.flow +52 -86
  113. package/datepicker/index.js.flow +8 -10
  114. package/datepicker/month.js.flow +10 -14
  115. package/datepicker/stateful-calendar.js.flow +2 -2
  116. package/datepicker/stateful-container.js.flow +10 -13
  117. package/datepicker/stateful-datepicker.js.flow +2 -2
  118. package/datepicker/styled-components.js +2 -2
  119. package/datepicker/styled-components.js.flow +111 -150
  120. package/datepicker/types.js.flow +38 -38
  121. package/datepicker/utils/calendar-header-helpers.js.flow +5 -5
  122. package/datepicker/utils/date-fns-adapter.js.flow +1 -1
  123. package/datepicker/utils/date-helpers.js +1 -1
  124. package/datepicker/utils/date-helpers.js.flow +85 -127
  125. package/datepicker/utils/day-state.js.flow +1 -1
  126. package/datepicker/utils/index.js +1 -1
  127. package/datepicker/utils/index.js.flow +4 -5
  128. package/datepicker/utils/types.js.flow +2 -2
  129. package/datepicker/week.js.flow +8 -11
  130. package/dnd-list/index.js.flow +7 -6
  131. package/dnd-list/list.js.flow +18 -45
  132. package/dnd-list/stateful-list-container.js.flow +7 -10
  133. package/dnd-list/stateful-list.js.flow +3 -3
  134. package/dnd-list/styled-components.js.flow +36 -45
  135. package/dnd-list/types.js.flow +6 -6
  136. package/drawer/close-icon.js.flow +1 -1
  137. package/drawer/constants.js.flow +3 -2
  138. package/drawer/drawer.js +1 -1
  139. package/drawer/drawer.js.flow +26 -43
  140. package/drawer/index.js.flow +2 -2
  141. package/drawer/styled-components.js.flow +34 -47
  142. package/drawer/types.js.flow +5 -8
  143. package/es/a11y/a11y.js +1 -1
  144. package/es/accordion/accordion.js +2 -1
  145. package/es/accordion/panel.js +1 -1
  146. package/es/app-nav-bar/mobile-menu.js +9 -13
  147. package/es/app-nav-bar/user-menu.js +8 -9
  148. package/es/aspect-ratio-box/aspect-ratio-box.js +2 -2
  149. package/es/block/block.js +1 -1
  150. package/es/breadcrumbs/breadcrumbs.js +4 -7
  151. package/es/button/button.js +2 -1
  152. package/es/button/styled-components.js +20 -6
  153. package/es/button/utils.js +2 -0
  154. package/es/button-group/button-group.js +1 -1
  155. package/es/button-group/stateful-button-group.js +4 -1
  156. package/es/checkbox/checkbox.js +2 -3
  157. package/es/checkbox/stateful-checkbox-container.js +0 -3
  158. package/es/combobox/combobox.js +6 -8
  159. package/es/data-table/column-custom.js +1 -0
  160. package/es/data-table/column-datetime.js +6 -6
  161. package/es/data-table/column.js +1 -0
  162. package/es/data-table/data-table.js +4 -4
  163. package/es/datepicker/calendar-header.js +7 -10
  164. package/es/datepicker/calendar.js +3 -3
  165. package/es/datepicker/datepicker.js +1 -1
  166. package/es/datepicker/styled-components.js +2 -2
  167. package/es/datepicker/utils/date-helpers.js +1 -1
  168. package/es/datepicker/utils/index.js +1 -1
  169. package/es/drawer/drawer.js +1 -1
  170. package/es/flex-grid/flex-grid-item.js +6 -4
  171. package/es/flex-grid/flex-grid.js +7 -3
  172. package/es/form-control/form-control.js +4 -4
  173. package/es/heading/heading.js +1 -1
  174. package/es/helpers/overrides.js +13 -9
  175. package/es/icon/alert.js +18 -14
  176. package/es/icon/arrow-down.js +18 -14
  177. package/es/icon/arrow-left.js +18 -14
  178. package/es/icon/arrow-right.js +18 -14
  179. package/es/icon/arrow-up.js +18 -14
  180. package/es/icon/blank.js +14 -10
  181. package/es/icon/check-indeterminate.js +18 -14
  182. package/es/icon/check.js +18 -14
  183. package/es/icon/chevron-down.js +19 -15
  184. package/es/icon/chevron-left.js +18 -14
  185. package/es/icon/chevron-right.js +18 -14
  186. package/es/icon/chevron-up.js +19 -15
  187. package/es/icon/delete-alt.js +18 -14
  188. package/es/icon/delete.js +18 -14
  189. package/es/icon/filter.js +32 -28
  190. package/es/icon/grab.js +18 -14
  191. package/es/icon/hide.js +16 -12
  192. package/es/icon/menu.js +32 -28
  193. package/es/icon/omit-dollar-prefixed-keys.js +1 -1
  194. package/es/icon/overflow.js +26 -22
  195. package/es/icon/plus.js +18 -14
  196. package/es/icon/search.js +18 -14
  197. package/es/icon/show.js +16 -12
  198. package/es/icon/spinner.js +23 -19
  199. package/es/icon/triangle-down.js +16 -12
  200. package/es/icon/triangle-left.js +16 -12
  201. package/es/icon/triangle-right.js +16 -12
  202. package/es/icon/triangle-up.js +16 -12
  203. package/es/icon/upload.js +18 -14
  204. package/es/input/masked-input.js +1 -0
  205. package/es/input/stateful-container.js +0 -1
  206. package/es/input/styled-components.js +3 -2
  207. package/es/layer/layer.js +4 -3
  208. package/es/list/list-heading.js +3 -3
  209. package/es/list/list-item.js +1 -1
  210. package/es/list/menu-adapter.js +1 -2
  211. package/es/map-marker/fixed-marker.js +11 -5
  212. package/es/menu/maybe-child-menu.js +1 -2
  213. package/es/menu/menu.js +1 -1
  214. package/es/menu/option-profile.js +2 -0
  215. package/es/menu/stateful-container.js +3 -4
  216. package/es/menu/stateful-menu.js +4 -1
  217. package/es/menu/types.js +1 -1
  218. package/es/modal/modal-button.js +5 -1
  219. package/es/modal/modal.js +1 -3
  220. package/es/pagination/index.js +1 -1
  221. package/es/pagination/stateful-container.js +1 -0
  222. package/es/pagination/stateful-pagination.js +1 -0
  223. package/es/payment-card/payment-card.js +4 -1
  224. package/es/payment-card/styled-components.js +0 -1
  225. package/es/phone-input/base-country-picker.js +6 -8
  226. package/es/phone-input/country-picker.js +5 -8
  227. package/es/phone-input/country-select-dropdown.js +4 -2
  228. package/es/phone-input/country-select.js +5 -8
  229. package/es/phone-input/flag.js +2 -1
  230. package/es/phone-input/phone-input-lite.js +1 -2
  231. package/es/phone-input/phone-input-next.js +1 -2
  232. package/es/pin-code/pin-code.js +1 -2
  233. package/es/popover/popover.js +7 -7
  234. package/es/progress-bar/progressbar-rounded.js +25 -22
  235. package/es/progress-bar/progressbar.js +6 -3
  236. package/es/radio/radiogroup.js +1 -1
  237. package/es/rating/emoticon-rating.js +1 -1
  238. package/es/rating/star-rating.js +1 -1
  239. package/es/select/autosize-input.js +1 -2
  240. package/es/select/dropdown.js +2 -4
  241. package/es/select/multi-value.js +1 -1
  242. package/es/select/select-component.js +5 -4
  243. package/es/select/styled-components.js +1 -2
  244. package/es/select/value.js +1 -1
  245. package/es/slider/slider.js +2 -2
  246. package/es/snackbar/snackbar-element.js +4 -3
  247. package/es/snackbar/styled-components.js +1 -1
  248. package/es/spinner/spinner.js +22 -18
  249. package/es/spinner/styled-components.js +3 -2
  250. package/es/styles/__mocks__/styled.js +2 -1
  251. package/es/styles/styled.js +9 -7
  252. package/es/table/sortable-head-cell.js +1 -1
  253. package/es/table-semantic/styled-components.js +2 -1
  254. package/es/tabs/tabs.js +2 -2
  255. package/es/tag/styled-components.js +4 -8
  256. package/es/tag/tag.js +1 -1
  257. package/es/textarea/styled-components.js +9 -7
  258. package/es/textarea/textarea.js +2 -1
  259. package/es/timepicker/timepicker.js +2 -4
  260. package/es/timezonepicker/timezone-picker.js +2 -5
  261. package/es/timezonepicker/tzdata.js +6 -1
  262. package/es/timezonepicker/update-tzdata.js +9 -4
  263. package/es/toast/styled-components.js +30 -28
  264. package/es/toast/toaster.js +5 -7
  265. package/es/toast/types.js +0 -2
  266. package/es/tree-view/tree-label-interactable.js +8 -4
  267. package/es/tree-view/tree-label.js +5 -1
  268. package/es/tree-view/tree-node.js +1 -1
  269. package/es/tree-view/tree-view.js +6 -6
  270. package/es/typography/index.js +144 -36
  271. package/es/utils/deep-merge.js +2 -2
  272. package/es/utils/deprecated-component.js +5 -3
  273. package/esm/a11y/a11y.js +1 -1
  274. package/esm/accordion/accordion.js +3 -2
  275. package/esm/accordion/panel.js +1 -1
  276. package/esm/app-nav-bar/mobile-menu.js +9 -13
  277. package/esm/app-nav-bar/user-menu.js +8 -9
  278. package/esm/aspect-ratio-box/aspect-ratio-box.js +2 -2
  279. package/esm/block/block.js +1 -1
  280. package/esm/breadcrumbs/breadcrumbs.js +4 -7
  281. package/esm/button/button.js +2 -1
  282. package/esm/button/styled-components.js +19 -5
  283. package/esm/button/utils.js +3 -1
  284. package/esm/button-group/button-group.js +1 -1
  285. package/esm/button-group/stateful-button-group.js +5 -1
  286. package/esm/checkbox/checkbox.js +2 -3
  287. package/esm/combobox/combobox.js +4 -4
  288. package/esm/data-table/column-custom.js +1 -0
  289. package/esm/data-table/column-datetime.js +6 -6
  290. package/esm/data-table/column.js +1 -0
  291. package/esm/data-table/data-table.js +4 -4
  292. package/esm/datepicker/calendar-header.js +7 -10
  293. package/esm/datepicker/calendar.js +2 -1
  294. package/esm/datepicker/datepicker.js +1 -1
  295. package/esm/datepicker/styled-components.js +2 -2
  296. package/esm/datepicker/utils/date-helpers.js +1 -1
  297. package/esm/datepicker/utils/index.js +1 -1
  298. package/esm/drawer/drawer.js +1 -1
  299. package/esm/flex-grid/flex-grid-item.js +5 -3
  300. package/esm/flex-grid/flex-grid.js +14 -9
  301. package/esm/form-control/form-control.js +4 -4
  302. package/esm/heading/heading.js +1 -1
  303. package/esm/helpers/overrides.js +13 -9
  304. package/esm/icon/alert.js +18 -14
  305. package/esm/icon/arrow-down.js +18 -14
  306. package/esm/icon/arrow-left.js +18 -14
  307. package/esm/icon/arrow-right.js +18 -14
  308. package/esm/icon/arrow-up.js +18 -14
  309. package/esm/icon/blank.js +14 -10
  310. package/esm/icon/check-indeterminate.js +18 -14
  311. package/esm/icon/check.js +18 -14
  312. package/esm/icon/chevron-down.js +19 -15
  313. package/esm/icon/chevron-left.js +18 -14
  314. package/esm/icon/chevron-right.js +18 -14
  315. package/esm/icon/chevron-up.js +19 -15
  316. package/esm/icon/delete-alt.js +18 -14
  317. package/esm/icon/delete.js +18 -14
  318. package/esm/icon/filter.js +32 -28
  319. package/esm/icon/grab.js +18 -14
  320. package/esm/icon/hide.js +16 -12
  321. package/esm/icon/menu.js +32 -28
  322. package/esm/icon/omit-dollar-prefixed-keys.js +1 -1
  323. package/esm/icon/overflow.js +26 -22
  324. package/esm/icon/plus.js +18 -14
  325. package/esm/icon/search.js +18 -14
  326. package/esm/icon/show.js +16 -12
  327. package/esm/icon/spinner.js +23 -19
  328. package/esm/icon/triangle-down.js +16 -12
  329. package/esm/icon/triangle-left.js +16 -12
  330. package/esm/icon/triangle-right.js +16 -12
  331. package/esm/icon/triangle-up.js +16 -12
  332. package/esm/icon/upload.js +18 -14
  333. package/esm/input/masked-input.js +1 -0
  334. package/esm/input/stateful-container.js +0 -1
  335. package/esm/input/styled-components.js +6 -2
  336. package/esm/layer/layer.js +4 -3
  337. package/esm/list/list-heading.js +3 -3
  338. package/esm/list/list-item.js +1 -1
  339. package/esm/list/menu-adapter.js +1 -2
  340. package/esm/map-marker/fixed-marker.js +11 -5
  341. package/esm/menu/maybe-child-menu.js +1 -2
  342. package/esm/menu/menu.js +1 -1
  343. package/esm/menu/option-profile.js +2 -0
  344. package/esm/menu/stateful-container.js +3 -4
  345. package/esm/menu/stateful-menu.js +9 -5
  346. package/esm/menu/types.js +1 -1
  347. package/esm/modal/modal-button.js +10 -5
  348. package/esm/modal/modal.js +1 -3
  349. package/esm/pagination/index.js +1 -1
  350. package/esm/pagination/stateful-container.js +1 -0
  351. package/esm/pagination/stateful-pagination.js +1 -0
  352. package/esm/payment-card/payment-card.js +25 -21
  353. package/esm/phone-input/base-country-picker.js +6 -8
  354. package/esm/phone-input/country-picker.js +5 -8
  355. package/esm/phone-input/country-select-dropdown.js +4 -2
  356. package/esm/phone-input/country-select.js +5 -8
  357. package/esm/phone-input/flag.js +2 -1
  358. package/esm/phone-input/phone-input-lite.js +1 -2
  359. package/esm/phone-input/phone-input-next.js +1 -2
  360. package/esm/pin-code/pin-code.js +1 -2
  361. package/esm/popover/popover.js +7 -7
  362. package/esm/progress-bar/progressbar-rounded.js +25 -22
  363. package/esm/progress-bar/progressbar.js +9 -5
  364. package/esm/radio/radiogroup.js +1 -1
  365. package/esm/rating/emoticon-rating.js +1 -1
  366. package/esm/rating/star-rating.js +1 -1
  367. package/esm/select/autosize-input.js +1 -2
  368. package/esm/select/dropdown.js +1 -2
  369. package/esm/select/multi-value.js +1 -1
  370. package/esm/select/select-component.js +5 -4
  371. package/esm/select/styled-components.js +1 -2
  372. package/esm/select/value.js +1 -1
  373. package/esm/slider/slider.js +2 -2
  374. package/esm/snackbar/snackbar-element.js +4 -3
  375. package/esm/snackbar/styled-components.js +1 -1
  376. package/esm/spinner/spinner.js +22 -18
  377. package/esm/spinner/styled-components.js +0 -2
  378. package/esm/styles/__mocks__/styled.js +2 -1
  379. package/esm/styles/styled.js +9 -7
  380. package/esm/table/sortable-head-cell.js +1 -1
  381. package/esm/table-semantic/styled-components.js +2 -1
  382. package/esm/tabs/tabs.js +2 -2
  383. package/esm/tag/styled-components.js +4 -8
  384. package/esm/tag/tag.js +1 -1
  385. package/esm/textarea/styled-components.js +8 -7
  386. package/esm/textarea/textarea.js +2 -1
  387. package/esm/timepicker/timepicker.js +2 -4
  388. package/esm/timezonepicker/timezone-picker.js +2 -5
  389. package/esm/timezonepicker/tzdata.js +6 -1
  390. package/esm/timezonepicker/update-tzdata.js +11 -13
  391. package/esm/toast/styled-components.js +30 -19
  392. package/esm/toast/toaster.js +5 -7
  393. package/esm/toast/types.js +0 -2
  394. package/esm/tree-view/tree-label-interactable.js +12 -8
  395. package/esm/tree-view/tree-label.js +7 -3
  396. package/esm/tree-view/tree-node.js +1 -1
  397. package/esm/tree-view/tree-view.js +6 -6
  398. package/esm/typography/index.js +416 -272
  399. package/esm/utils/deep-merge.js +2 -2
  400. package/esm/utils/deprecated-component.js +5 -3
  401. package/file-uploader/file-uploader.js.flow +30 -60
  402. package/file-uploader/index.js.flow +1 -1
  403. package/file-uploader/styled-components.js.flow +9 -11
  404. package/file-uploader/types.js.flow +8 -10
  405. package/flex-grid/flex-grid-item.js +5 -3
  406. package/flex-grid/flex-grid-item.js.flow +31 -40
  407. package/flex-grid/flex-grid.js +14 -9
  408. package/flex-grid/flex-grid.js.flow +32 -31
  409. package/flex-grid/index.js.flow +2 -2
  410. package/flex-grid/types.js.flow +1 -1
  411. package/form-control/form-control.js +4 -4
  412. package/form-control/form-control.js.flow +16 -32
  413. package/form-control/index.js.flow +1 -1
  414. package/form-control/styled-components.js.flow +18 -21
  415. package/form-control/types.js.flow +2 -2
  416. package/header-navigation/header-navigation.js.flow +5 -10
  417. package/header-navigation/index.js.flow +2 -2
  418. package/header-navigation/styled-components.js.flow +38 -41
  419. package/header-navigation/types.js.flow +1 -1
  420. package/heading/heading-level.js.flow +3 -7
  421. package/heading/heading.js +1 -1
  422. package/heading/heading.js.flow +9 -23
  423. package/heading/index.js.flow +2 -2
  424. package/heading/types.js.flow +1 -1
  425. package/helper/constants.js.flow +1 -1
  426. package/helper/helper-steps.js.flow +8 -21
  427. package/helper/helper.js.flow +8 -8
  428. package/helper/index.js.flow +4 -4
  429. package/helper/stateful-helper.js.flow +5 -5
  430. package/helper/styled-components.js.flow +12 -24
  431. package/helpers/base-provider.js.flow +5 -5
  432. package/helpers/i18n-interpolation.js.flow +2 -2
  433. package/helpers/overrides.js +13 -9
  434. package/helpers/overrides.js.flow +40 -51
  435. package/helpers/react-helpers.js.flow +5 -5
  436. package/helpers/responsive-helpers.js.flow +2 -2
  437. package/helpers/strings.js.flow +1 -2
  438. package/helpers/types.js.flow +2 -2
  439. package/icon/alert.js +18 -14
  440. package/icon/alert.js.flow +7 -6
  441. package/icon/arrow-down.js +18 -14
  442. package/icon/arrow-down.js.flow +8 -14
  443. package/icon/arrow-left.js +18 -14
  444. package/icon/arrow-left.js.flow +8 -14
  445. package/icon/arrow-right.js +18 -14
  446. package/icon/arrow-right.js.flow +8 -14
  447. package/icon/arrow-up.js +18 -14
  448. package/icon/arrow-up.js.flow +8 -8
  449. package/icon/blank.js +14 -10
  450. package/icon/blank.js.flow +7 -6
  451. package/icon/build-icons.js.flow +13 -28
  452. package/icon/check-indeterminate.js +18 -14
  453. package/icon/check-indeterminate.js.flow +8 -15
  454. package/icon/check.js +18 -14
  455. package/icon/check.js.flow +7 -6
  456. package/icon/chevron-down.js +19 -15
  457. package/icon/chevron-down.js.flow +8 -8
  458. package/icon/chevron-left.js +18 -14
  459. package/icon/chevron-left.js.flow +8 -8
  460. package/icon/chevron-right.js +18 -14
  461. package/icon/chevron-right.js.flow +8 -10
  462. package/icon/chevron-up.js +19 -15
  463. package/icon/chevron-up.js.flow +8 -8
  464. package/icon/delete-alt.js +18 -14
  465. package/icon/delete-alt.js.flow +8 -14
  466. package/icon/delete.js +18 -14
  467. package/icon/delete.js.flow +7 -6
  468. package/icon/filter.js +32 -28
  469. package/icon/filter.js.flow +7 -6
  470. package/icon/grab.js +18 -14
  471. package/icon/grab.js.flow +7 -6
  472. package/icon/hide.js +16 -12
  473. package/icon/hide.js.flow +7 -6
  474. package/icon/icon-exports.js.flow +28 -28
  475. package/icon/icon.js.flow +4 -4
  476. package/icon/index.js.flow +2 -2
  477. package/icon/menu.js +32 -28
  478. package/icon/menu.js.flow +7 -6
  479. package/icon/omit-dollar-prefixed-keys.js +1 -1
  480. package/icon/omit-dollar-prefixed-keys.js.flow +2 -2
  481. package/icon/overflow.js +26 -22
  482. package/icon/overflow.js.flow +8 -8
  483. package/icon/plus.js +18 -14
  484. package/icon/plus.js.flow +7 -6
  485. package/icon/search.js +18 -14
  486. package/icon/search.js.flow +7 -6
  487. package/icon/show.js +16 -12
  488. package/icon/show.js.flow +7 -6
  489. package/icon/spinner.js +23 -19
  490. package/icon/spinner.js.flow +8 -8
  491. package/icon/styled-components.js.flow +13 -4
  492. package/icon/triangle-down.js +16 -12
  493. package/icon/triangle-down.js.flow +8 -16
  494. package/icon/triangle-left.js +16 -12
  495. package/icon/triangle-left.js.flow +8 -16
  496. package/icon/triangle-right.js +16 -12
  497. package/icon/triangle-right.js.flow +8 -16
  498. package/icon/triangle-up.js +16 -12
  499. package/icon/triangle-up.js.flow +8 -14
  500. package/icon/types.js.flow +1 -1
  501. package/icon/upload.js +18 -14
  502. package/icon/upload.js.flow +7 -6
  503. package/index.js.flow +5 -5
  504. package/input/base-input.js.flow +31 -58
  505. package/input/index.d.ts +1 -1
  506. package/input/index.js.flow +6 -11
  507. package/input/input.js.flow +13 -27
  508. package/input/masked-input.js +1 -0
  509. package/input/masked-input.js.flow +7 -6
  510. package/input/stateful-container.js +0 -1
  511. package/input/stateful-container.js.flow +6 -12
  512. package/input/stateful-input.js.flow +2 -2
  513. package/input/styled-components.js +6 -2
  514. package/input/styled-components.js.flow +78 -59
  515. package/input/types.js.flow +17 -18
  516. package/input/utils.js.flow +5 -5
  517. package/layer/index.js.flow +4 -4
  518. package/layer/layer.js +4 -3
  519. package/layer/layer.js.flow +19 -30
  520. package/layer/layers-manager.js.flow +25 -36
  521. package/layer/tether.js.flow +12 -14
  522. package/layer/types.js.flow +3 -3
  523. package/layer/utils.js.flow +2 -8
  524. package/layout-grid/cell.js.flow +5 -8
  525. package/layout-grid/grid.js.flow +11 -26
  526. package/layout-grid/index.js.flow +2 -2
  527. package/layout-grid/styled-components.js.flow +23 -38
  528. package/layout-grid/types.js.flow +3 -6
  529. package/link/index.js.flow +8 -8
  530. package/link/styled-components.js.flow +5 -7
  531. package/list/index.d.ts +4 -13
  532. package/list/index.js.flow +5 -5
  533. package/list/list-heading.js +3 -3
  534. package/list/list-heading.js.flow +76 -91
  535. package/list/list-item-label.js.flow +8 -12
  536. package/list/list-item.js +1 -1
  537. package/list/list-item.js.flow +64 -69
  538. package/list/menu-adapter.js +1 -2
  539. package/list/menu-adapter.js.flow +29 -36
  540. package/list/styled-components.js.flow +52 -60
  541. package/list/types.js.flow +11 -11
  542. package/list/utils.js.flow +3 -6
  543. package/locale/es_AR.js.flow +1 -2
  544. package/locale/index.js.flow +5 -10
  545. package/locale/types.js.flow +12 -12
  546. package/map-marker/badge-enhancer.js.flow +12 -27
  547. package/map-marker/constants.js.flow +3 -3
  548. package/map-marker/drag-shadow.js.flow +8 -23
  549. package/map-marker/fixed-marker.js +11 -5
  550. package/map-marker/fixed-marker.js.flow +21 -29
  551. package/map-marker/floating-marker.js.flow +9 -18
  552. package/map-marker/index.js.flow +2 -2
  553. package/map-marker/label-enhancer.js.flow +6 -9
  554. package/map-marker/needle.js.flow +6 -12
  555. package/map-marker/pin-head.js.flow +15 -38
  556. package/map-marker/styled-components.js.flow +45 -60
  557. package/map-marker/types.js.flow +9 -11
  558. package/menu/index.d.ts +2 -1
  559. package/menu/index.js.flow +7 -7
  560. package/menu/maybe-child-menu.js +1 -2
  561. package/menu/maybe-child-menu.js.flow +11 -14
  562. package/menu/menu.js +1 -1
  563. package/menu/menu.js.flow +17 -26
  564. package/menu/nested-menus.js.flow +21 -23
  565. package/menu/option-list.js.flow +16 -18
  566. package/menu/option-profile.js +2 -0
  567. package/menu/option-profile.js.flow +16 -30
  568. package/menu/stateful-container.js +3 -4
  569. package/menu/stateful-container.js.flow +42 -62
  570. package/menu/stateful-menu.js +9 -5
  571. package/menu/stateful-menu.js.flow +6 -5
  572. package/menu/styled-components.js.flow +47 -64
  573. package/menu/types.js.flow +30 -36
  574. package/menu/utils.js.flow +1 -1
  575. package/modal/close-icon.js.flow +2 -6
  576. package/modal/focus-once.js.flow +1 -1
  577. package/modal/index.js.flow +4 -4
  578. package/modal/modal-button.js +10 -5
  579. package/modal/modal-button.js.flow +10 -15
  580. package/modal/modal.js +1 -3
  581. package/modal/modal.js.flow +23 -40
  582. package/modal/styled-components.js.flow +18 -32
  583. package/modal/types.js.flow +6 -12
  584. package/notification/index.js.flow +2 -2
  585. package/notification/notification.js.flow +2 -2
  586. package/package.json +19 -15
  587. package/pagination/index.js +8 -8
  588. package/pagination/index.js.flow +8 -11
  589. package/pagination/pagination.js.flow +39 -62
  590. package/pagination/stateful-container.js +1 -0
  591. package/pagination/stateful-container.js.flow +14 -22
  592. package/pagination/stateful-pagination.js +1 -0
  593. package/pagination/stateful-pagination.js.flow +4 -6
  594. package/pagination/styled-components.js.flow +10 -14
  595. package/pagination/types.js.flow +12 -8
  596. package/payment-card/icons/amex.js.flow +2 -5
  597. package/payment-card/icons/dinersclub.js.flow +1 -1
  598. package/payment-card/icons/discover.js.flow +1 -1
  599. package/payment-card/icons/elo.js.flow +1 -1
  600. package/payment-card/icons/generic.js.flow +1 -1
  601. package/payment-card/icons/jcb.js.flow +4 -13
  602. package/payment-card/icons/maestro.js.flow +1 -1
  603. package/payment-card/icons/mastercard.js.flow +1 -1
  604. package/payment-card/icons/unionpay.js.flow +1 -1
  605. package/payment-card/icons/visa.js.flow +1 -1
  606. package/payment-card/index.js.flow +6 -6
  607. package/payment-card/payment-card.js +25 -21
  608. package/payment-card/payment-card.js.flow +16 -21
  609. package/payment-card/stateful-payment-card.js.flow +3 -2
  610. package/payment-card/styled-components.js.flow +5 -6
  611. package/payment-card/types.js.flow +2 -6
  612. package/payment-card/utils.js.flow +6 -18
  613. package/phone-input/base-country-picker.js +7 -8
  614. package/phone-input/base-country-picker.js.flow +27 -44
  615. package/phone-input/constants.js.flow +227 -227
  616. package/phone-input/country-picker.js +5 -8
  617. package/phone-input/country-picker.js.flow +19 -29
  618. package/phone-input/country-select-dropdown.js +3 -2
  619. package/phone-input/country-select-dropdown.js.flow +31 -43
  620. package/phone-input/country-select.js +5 -8
  621. package/phone-input/country-select.js.flow +13 -28
  622. package/phone-input/default-props.js.flow +2 -6
  623. package/phone-input/flag.js +2 -1
  624. package/phone-input/flag.js.flow +7 -6
  625. package/phone-input/flags/index.js.flow +241 -241
  626. package/phone-input/index.js.flow +10 -14
  627. package/phone-input/phone-input-lite.js +1 -2
  628. package/phone-input/phone-input-lite.js.flow +6 -7
  629. package/phone-input/phone-input-next.js +1 -2
  630. package/phone-input/phone-input-next.js.flow +13 -14
  631. package/phone-input/phone-input.js.flow +2 -2
  632. package/phone-input/stateful-phone-input-container.js.flow +4 -4
  633. package/phone-input/stateful-phone-input-next.js.flow +3 -5
  634. package/phone-input/stateful-phone-input.js.flow +1 -1
  635. package/phone-input/styled-components.js.flow +54 -59
  636. package/phone-input/types.js.flow +11 -16
  637. package/phone-input/utils.js.flow +2 -4
  638. package/pin-code/default-props.js.flow +1 -1
  639. package/pin-code/index.js.flow +4 -6
  640. package/pin-code/pin-code.js +1 -2
  641. package/pin-code/pin-code.js.flow +15 -28
  642. package/pin-code/stateful-pin-code-container.js.flow +6 -10
  643. package/pin-code/stateful-pin-code.js.flow +1 -1
  644. package/pin-code/styled-components.js.flow +19 -22
  645. package/pin-code/types.js.flow +6 -6
  646. package/popover/default-props.js.flow +2 -2
  647. package/popover/index.js.flow +3 -3
  648. package/popover/popover.js +7 -3
  649. package/popover/popover.js.flow +59 -75
  650. package/popover/stateful-container.js.flow +5 -8
  651. package/popover/stateful-popover.js.flow +4 -9
  652. package/popover/styled-components.js.flow +13 -26
  653. package/popover/types.js.flow +13 -28
  654. package/popover/utils.js.flow +9 -16
  655. package/progress-bar/index.d.ts +1 -0
  656. package/progress-bar/index.js.flow +3 -3
  657. package/progress-bar/progressbar-rounded.js +25 -22
  658. package/progress-bar/progressbar-rounded.js.flow +10 -7
  659. package/progress-bar/progressbar.js +9 -5
  660. package/progress-bar/progressbar.js.flow +20 -36
  661. package/progress-bar/styled-components.js.flow +98 -117
  662. package/progress-bar/types.js.flow +4 -7
  663. package/progress-steps/index.js.flow +3 -3
  664. package/progress-steps/numbered-step.js.flow +6 -15
  665. package/progress-steps/progress-steps.js.flow +7 -14
  666. package/progress-steps/step.js.flow +7 -20
  667. package/progress-steps/styled-components.js.flow +25 -29
  668. package/progress-steps/types.js.flow +2 -2
  669. package/radio/index.js.flow +5 -5
  670. package/radio/radio.js.flow +15 -18
  671. package/radio/radiogroup.js +1 -1
  672. package/radio/radiogroup.js.flow +19 -28
  673. package/radio/stateful-radiogroup-container.js.flow +7 -10
  674. package/radio/stateful-radiogroup.js.flow +4 -6
  675. package/radio/styled-components.js.flow +26 -32
  676. package/radio/types.js.flow +5 -4
  677. package/rating/emoticon-rating.js +1 -1
  678. package/rating/emoticon-rating.js.flow +26 -40
  679. package/rating/index.js.flow +2 -2
  680. package/rating/star-rating.js +1 -1
  681. package/rating/star-rating.js.flow +23 -34
  682. package/rating/styled-components.js.flow +8 -27
  683. package/rating/types.js.flow +4 -4
  684. package/select/autosize-input.js +1 -2
  685. package/select/autosize-input.js.flow +10 -18
  686. package/select/constants.js.flow +1 -1
  687. package/select/default-props.js.flow +1 -1
  688. package/select/dropdown.js +1 -2
  689. package/select/dropdown.js.flow +20 -35
  690. package/select/index.js.flow +11 -13
  691. package/select/multi-select.js.flow +2 -4
  692. package/select/multi-value.js +1 -1
  693. package/select/multi-value.js.flow +6 -9
  694. package/select/select-component.js +5 -5
  695. package/select/select-component.js.flow +98 -175
  696. package/select/select.js.flow +1 -6
  697. package/select/single-select.js.flow +1 -1
  698. package/select/stateful-select-container.js.flow +5 -13
  699. package/select/stateful-select.js.flow +1 -1
  700. package/select/styled-components.js.flow +167 -218
  701. package/select/types.js.flow +15 -18
  702. package/select/utils/default-filter-options.js.flow +7 -8
  703. package/select/utils/index.js.flow +5 -12
  704. package/select/value.js +1 -1
  705. package/select/value.js.flow +5 -8
  706. package/side-navigation/index.js.flow +2 -2
  707. package/side-navigation/nav-item.js.flow +8 -13
  708. package/side-navigation/nav.js.flow +15 -35
  709. package/side-navigation/stateful-container.js.flow +10 -19
  710. package/side-navigation/stateful-nav.js.flow +2 -2
  711. package/side-navigation/styled-components.js.flow +16 -20
  712. package/side-navigation/types.js.flow +9 -9
  713. package/skeleton/index.js.flow +1 -1
  714. package/skeleton/skeleton.js.flow +4 -4
  715. package/skeleton/styled-components.js.flow +15 -18
  716. package/skeleton/types.js.flow +1 -1
  717. package/slider/index.js.flow +4 -3
  718. package/slider/slider.js +2 -2
  719. package/slider/slider.js.flow +19 -41
  720. package/slider/stateful-slider-container.js.flow +9 -12
  721. package/slider/stateful-slider.js.flow +2 -2
  722. package/slider/styled-components.js.flow +21 -21
  723. package/slider/types.js.flow +9 -13
  724. package/snackbar/index.js.flow +3 -3
  725. package/snackbar/snackbar-context.js.flow +16 -23
  726. package/snackbar/snackbar-element.js +4 -3
  727. package/snackbar/snackbar-element.js.flow +19 -32
  728. package/snackbar/styled-components.js +1 -1
  729. package/snackbar/styled-components.js.flow +19 -24
  730. package/snackbar/types.js.flow +6 -6
  731. package/spinner/index.js.flow +3 -2
  732. package/spinner/spinner.js +22 -18
  733. package/spinner/spinner.js.flow +10 -20
  734. package/spinner/styled-components.js +0 -2
  735. package/spinner/styled-components.js.flow +12 -11
  736. package/spinner/types.js.flow +3 -3
  737. package/styles/__mocks__/styled.js +1 -0
  738. package/styles/as-primary-export-hoc.js.flow +2 -2
  739. package/styles/index.js.flow +3 -3
  740. package/styles/styled.js +9 -7
  741. package/styles/styled.js.flow +35 -43
  742. package/styles/theme-provider.js.flow +6 -10
  743. package/styles/types.js.flow +2 -2
  744. package/styles/util.js.flow +17 -4
  745. package/table/filter.js.flow +12 -28
  746. package/table/index.d.ts +1 -0
  747. package/table/index.js.flow +4 -7
  748. package/table/sortable-head-cell.js +1 -1
  749. package/table/sortable-head-cell.js.flow +10 -13
  750. package/table/styled-components.js.flow +67 -79
  751. package/table/table.js.flow +2 -2
  752. package/table/types.js.flow +3 -2
  753. package/table-grid/index.js.flow +3 -7
  754. package/table-grid/sortable-head-cell.js.flow +2 -2
  755. package/table-grid/styled-components.js.flow +21 -23
  756. package/table-semantic/index.js.flow +4 -4
  757. package/table-semantic/styled-components.js +2 -1
  758. package/table-semantic/styled-components.js.flow +88 -125
  759. package/table-semantic/table-builder-column.js.flow +2 -4
  760. package/table-semantic/table-builder.js.flow +31 -70
  761. package/table-semantic/table.js.flow +13 -28
  762. package/table-semantic/types.js.flow +2 -2
  763. package/tabs/index.js.flow +4 -4
  764. package/tabs/stateful-tabs.js.flow +8 -24
  765. package/tabs/styled-components.js.flow +11 -11
  766. package/tabs/tab.js.flow +13 -16
  767. package/tabs/tabs.js +2 -2
  768. package/tabs/tabs.js.flow +17 -38
  769. package/tabs/types.js.flow +6 -6
  770. package/tabs-motion/stateful-tabs.js.flow +11 -24
  771. package/tabs-motion/styled-components.js.flow +59 -71
  772. package/tabs-motion/tab.js.flow +1 -1
  773. package/tabs-motion/tabs.js.flow +32 -62
  774. package/tabs-motion/types.js.flow +9 -9
  775. package/tabs-motion/utils.js.flow +6 -10
  776. package/tag/index.js.flow +2 -2
  777. package/tag/styled-components.js +4 -8
  778. package/tag/styled-components.js.flow +140 -146
  779. package/tag/tag.js +1 -1
  780. package/tag/tag.js.flow +13 -17
  781. package/tag/types.js.flow +2 -2
  782. package/tag/utils.js.flow +2 -2
  783. package/textarea/constants.js.flow +1 -1
  784. package/textarea/index.js.flow +5 -5
  785. package/textarea/stateful-container.js.flow +1 -0
  786. package/textarea/stateful-textarea.js.flow +1 -1
  787. package/textarea/styled-components.js +8 -7
  788. package/textarea/styled-components.js.flow +18 -15
  789. package/textarea/textarea.js +2 -1
  790. package/textarea/textarea.js.flow +11 -10
  791. package/textarea/types.js.flow +7 -5
  792. package/themes/dark-theme/borders.js.flow +1 -1
  793. package/themes/dark-theme/color-component-tokens.js.flow +2 -4
  794. package/themes/dark-theme/color-deprecated-semantic-tokens.js.flow +1 -1
  795. package/themes/dark-theme/color-semantic-tokens.js.flow +2 -2
  796. package/themes/dark-theme/color-tokens.js.flow +2 -2
  797. package/themes/dark-theme/create-dark-theme.js.flow +5 -7
  798. package/themes/dark-theme/dark-theme.js.flow +1 -1
  799. package/themes/dark-theme/primitives.js.flow +2 -2
  800. package/themes/index.js.flow +4 -4
  801. package/themes/light-theme/color-component-tokens.js.flow +2 -4
  802. package/themes/light-theme/color-deprecated-semantic-tokens.js.flow +2 -4
  803. package/themes/light-theme/color-semantic-tokens.js.flow +2 -2
  804. package/themes/light-theme/color-tokens.js.flow +2 -2
  805. package/themes/light-theme/create-light-theme.js.flow +5 -7
  806. package/themes/light-theme/light-theme.js.flow +1 -1
  807. package/themes/light-theme/primitives.js.flow +2 -2
  808. package/themes/move-theme/dark-theme-with-move.js.flow +3 -6
  809. package/themes/move-theme/light-theme-with-move.js.flow +3 -6
  810. package/themes/move-theme/typography.js.flow +28 -29
  811. package/themes/shared/animation.js.flow +1 -1
  812. package/themes/shared/borders.js.flow +1 -1
  813. package/themes/shared/breakpoints.js.flow +1 -1
  814. package/themes/shared/grid.js.flow +1 -1
  815. package/themes/shared/lighting.js.flow +1 -1
  816. package/themes/shared/media-query.js.flow +2 -2
  817. package/themes/shared/sizing.js.flow +1 -1
  818. package/themes/shared/typography.js.flow +20 -21
  819. package/themes/types.js.flow +3 -3
  820. package/timepicker/index.js.flow +1 -1
  821. package/timepicker/timepicker.js +2 -4
  822. package/timepicker/timepicker.js.flow +40 -73
  823. package/timepicker/types.js.flow +4 -4
  824. package/timezonepicker/index.js.flow +1 -1
  825. package/timezonepicker/timezone-picker.js +2 -5
  826. package/timezonepicker/timezone-picker.js.flow +26 -39
  827. package/timezonepicker/types.js.flow +5 -5
  828. package/timezonepicker/tzdata.js +6 -1
  829. package/timezonepicker/tzdata.js.flow +6 -1
  830. package/timezonepicker/update-tzdata.js +11 -13
  831. package/timezonepicker/update-tzdata.js.flow +11 -6
  832. package/toast/index.js.flow +3 -3
  833. package/toast/styled-components.js +30 -19
  834. package/toast/styled-components.js.flow +87 -74
  835. package/toast/toast.js.flow +25 -37
  836. package/toast/toaster.js +5 -7
  837. package/toast/toaster.js.flow +42 -65
  838. package/toast/types.js.flow +4 -5
  839. package/tokens/colors.js.flow +1 -1
  840. package/tokens/index.js.flow +1 -1
  841. package/tooltip/default-props.js.flow +2 -2
  842. package/tooltip/index.js.flow +4 -9
  843. package/tooltip/stateful-tooltip-container.js.flow +2 -2
  844. package/tooltip/stateful-tooltip.js.flow +3 -3
  845. package/tooltip/styled-components.js.flow +7 -11
  846. package/tooltip/tooltip.js.flow +5 -10
  847. package/tree-view/index.js.flow +5 -5
  848. package/tree-view/stateful-container.js.flow +12 -18
  849. package/tree-view/stateful-tree-view.js.flow +2 -2
  850. package/tree-view/styled-components.js.flow +25 -35
  851. package/tree-view/tree-label-interactable.js +12 -8
  852. package/tree-view/tree-label-interactable.js.flow +9 -9
  853. package/tree-view/tree-label.js +7 -3
  854. package/tree-view/tree-label.js.flow +12 -27
  855. package/tree-view/tree-node.js +1 -1
  856. package/tree-view/tree-node.js.flow +8 -9
  857. package/tree-view/tree-view.js +6 -6
  858. package/tree-view/tree-view.js.flow +17 -30
  859. package/tree-view/types.js.flow +6 -4
  860. package/tree-view/utils.js.flow +24 -55
  861. package/typography/index.js +416 -272
  862. package/typography/index.js.flow +388 -432
  863. package/utils/create-event.js.flow +1 -1
  864. package/utils/deep-merge.js +2 -2
  865. package/utils/deep-merge.js.flow +4 -7
  866. package/utils/deprecated-component.js +5 -3
  867. package/utils/deprecated-component.js.flow +7 -5
  868. package/utils/focusVisible.js.flow +26 -22
package/menu/menu.js.flow CHANGED
@@ -6,25 +6,21 @@ LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  // @flow
8
8
  import * as React from 'react';
9
- import {LocaleContext} from '../locale/index.js';
9
+ import { LocaleContext } from '../locale/index.js';
10
10
  // Components
11
- import {
12
- StyledList,
13
- StyledEmptyState,
14
- StyledOptgroupHeader,
15
- } from './styled-components.js';
11
+ import { StyledList, StyledEmptyState, StyledOptgroupHeader } from './styled-components.js';
16
12
  import OptionList from './option-list.js';
17
- import {getOverrides} from '../helpers/overrides.js';
13
+ import { getOverrides } from '../helpers/overrides.js';
18
14
  // Types
19
- import type {StatelessMenuPropsT} from './types.js';
20
- import type {LocaleT} from '../locale/types.js';
15
+ import type { StatelessMenuPropsT } from './types.js';
16
+ import type { LocaleT } from '../locale/types.js';
21
17
 
22
- import {isFocusVisible, forkFocus, forkBlur} from '../utils/focusVisible.js';
18
+ import { isFocusVisible, forkFocus, forkBlur } from '../utils/focusVisible.js';
23
19
 
24
20
  export default function Menu(props: StatelessMenuPropsT) {
25
21
  const {
26
22
  overrides = {},
27
- ariaLabel = 'Menu',
23
+ 'aria-label': ariaLabel = 'Menu',
28
24
  rootRef = React.createRef(),
29
25
  focusMenu = () => {},
30
26
  unfocusMenu = () => {},
@@ -48,18 +44,13 @@ export default function Menu(props: StatelessMenuPropsT) {
48
44
 
49
45
  const [List, listProps] = getOverrides(overrides.List, StyledList);
50
46
  const [Option, optionProps] = getOverrides(overrides.Option, OptionList);
51
- const [EmptyState, emptyStateProps] = getOverrides(
52
- overrides.EmptyState,
53
- StyledEmptyState,
54
- );
47
+ const [EmptyState, emptyStateProps] = getOverrides(overrides.EmptyState, StyledEmptyState);
55
48
  const [OptgroupHeader, optgroupHeaderProps] = getOverrides(
56
49
  overrides.OptgroupHeader,
57
- StyledOptgroupHeader,
50
+ StyledOptgroupHeader
58
51
  );
59
52
 
60
- const groupedItems = Array.isArray(props.items)
61
- ? {__ungrouped: props.items}
62
- : props.items;
53
+ const groupedItems = Array.isArray(props.items) ? { __ungrouped: props.items } : props.items;
63
54
  const optgroups = Object.keys(groupedItems);
64
55
  const [elements] = optgroups.reduce(
65
56
  ([els, itemIndex], optgroup) => {
@@ -67,12 +58,12 @@ export default function Menu(props: StatelessMenuPropsT) {
67
58
  els.push(
68
59
  <OptgroupHeader key={optgroup} {...optgroupHeaderProps}>
69
60
  {optgroup}
70
- </OptgroupHeader>,
61
+ </OptgroupHeader>
71
62
  );
72
63
  }
73
64
  const groupItems = groupedItems[optgroup].map((item, index) => {
74
65
  itemIndex = itemIndex + 1;
75
- const {getRequiredItemProps = (item, index) => ({})} = props;
66
+ const { getRequiredItemProps = (item, index) => ({}) } = props;
76
67
 
77
68
  const {
78
69
  disabled,
@@ -102,10 +93,10 @@ export default function Menu(props: StatelessMenuPropsT) {
102
93
  });
103
94
  return [els.concat(groupItems), itemIndex];
104
95
  },
105
- [[], -1],
96
+ [[], -1]
106
97
  );
107
98
 
108
- const isEmpty = optgroups.every(optgroup => !groupedItems[optgroup].length);
99
+ const isEmpty = optgroups.every((optgroup) => !groupedItems[optgroup].length);
109
100
 
110
101
  return (
111
102
  <LocaleContext.Consumer>
@@ -118,9 +109,9 @@ export default function Menu(props: StatelessMenuPropsT) {
118
109
  onMouseEnter={focusMenu}
119
110
  onMouseLeave={handleMouseLeave}
120
111
  onMouseOver={focusMenu}
121
- onFocus={forkFocus({onFocus: focusMenu}, handleFocus)}
122
- onBlur={forkBlur({onBlur: unfocusMenu}, handleBlur)}
123
- onKeyDown={event => {
112
+ onFocus={forkFocus({ onFocus: focusMenu }, handleFocus)}
113
+ onBlur={forkBlur({ onBlur: unfocusMenu }, handleBlur)}
114
+ onKeyDown={(event) => {
124
115
  if (props.isFocused) {
125
116
  handleKeyDown(event);
126
117
  }
@@ -9,7 +9,7 @@ LICENSE file in the root directory of this source tree.
9
9
 
10
10
  import * as React from 'react';
11
11
 
12
- import type {NestedMenuRefT, NestedMenuContextT} from './types.js';
12
+ import type { NestedMenuRefT, NestedMenuContextT } from './types.js';
13
13
 
14
14
  type StateT = {
15
15
  nestedMenuHoverIndex: number,
@@ -19,17 +19,15 @@ type PropsT = {
19
19
  children: React.Node,
20
20
  };
21
21
 
22
- export const NestedMenuContext: React.Context<NestedMenuContextT> = React.createContext(
23
- {
24
- addMenuToNesting: () => {},
25
- removeMenuFromNesting: () => {},
26
- getParentMenu: () => {},
27
- getChildMenu: () => {},
28
- nestedMenuHoverIndex: -1,
29
- isNestedMenuVisible: () => false,
30
- mountRef: {current: null},
31
- },
32
- );
22
+ export const NestedMenuContext: React.Context<NestedMenuContextT> = React.createContext({
23
+ addMenuToNesting: () => {},
24
+ removeMenuFromNesting: () => {},
25
+ getParentMenu: () => {},
26
+ getChildMenu: () => {},
27
+ nestedMenuHoverIndex: -1,
28
+ isNestedMenuVisible: () => false,
29
+ mountRef: { current: null },
30
+ });
33
31
 
34
32
  function isSame(a: ?HTMLElement, b: ?HTMLElement) {
35
33
  if (!a || !b) {
@@ -40,20 +38,20 @@ function isSame(a: ?HTMLElement, b: ?HTMLElement) {
40
38
  }
41
39
 
42
40
  export default class NestedMenus extends React.Component<PropsT, StateT> {
43
- state = {menus: [], nestedMenuHoverIndex: -1};
44
- mountRef = (React.createRef(): {current: HTMLElement | null});
41
+ state = { menus: [], nestedMenuHoverIndex: -1 };
42
+ mountRef = (React.createRef(): { current: HTMLElement | null });
45
43
  mouseLeaveTimeoueId = null;
46
44
 
47
45
  handleMenuMouseLeave = (event: MouseEvent) => {
48
46
  this.mouseLeaveTimeoueId = setTimeout(() => {
49
- this.setState({nestedMenuHoverIndex: -1});
47
+ this.setState({ nestedMenuHoverIndex: -1 });
50
48
  }, 200);
51
49
  };
52
50
 
53
51
  handleMenuMouseEnter = (event: MouseEvent) => {
54
52
  if (__BROWSER__) {
55
53
  clearTimeout(this.mouseLeaveTimeoueId);
56
- const index = this.state.menus.findIndex(m => {
54
+ const index = this.state.menus.findIndex((m) => {
57
55
  return (
58
56
  m.current &&
59
57
  event.currentTarget instanceof Node &&
@@ -61,7 +59,7 @@ export default class NestedMenus extends React.Component<PropsT, StateT> {
61
59
  );
62
60
  });
63
61
 
64
- this.setState({nestedMenuHoverIndex: index});
62
+ this.setState({ nestedMenuHoverIndex: index });
65
63
  }
66
64
  };
67
65
 
@@ -74,14 +72,14 @@ export default class NestedMenus extends React.Component<PropsT, StateT> {
74
72
  element.addEventListener('mouseenter', this.handleMenuMouseEnter);
75
73
  element.addEventListener('mouseleave', this.handleMenuMouseLeave);
76
74
 
77
- this.setState(state => {
78
- return {menus: [...state.menus, ref]};
75
+ this.setState((state) => {
76
+ return { menus: [...state.menus, ref] };
79
77
  });
80
78
  }
81
79
  };
82
80
 
83
81
  removeMenuFromNesting = (ref: NestedMenuRefT) => {
84
- this.setState(state => {
82
+ this.setState((state) => {
85
83
  for (const r of this.state.menus) {
86
84
  if (r.current && isSame(r.current, ref.current)) {
87
85
  const element = r.current;
@@ -90,16 +88,16 @@ export default class NestedMenus extends React.Component<PropsT, StateT> {
90
88
  }
91
89
  }
92
90
 
93
- const nextMenus = state.menus.filter(r => {
91
+ const nextMenus = state.menus.filter((r) => {
94
92
  return r.current && !isSame(r.current, ref.current);
95
93
  });
96
94
 
97
- return {menus: nextMenus};
95
+ return { menus: nextMenus };
98
96
  });
99
97
  };
100
98
 
101
99
  findMenuIndexByRef = (ref: NestedMenuRefT) => {
102
- return this.state.menus.findIndex(r => isSame(r.current, ref.current));
100
+ return this.state.menus.findIndex((r) => isSame(r.current, ref.current));
103
101
  };
104
102
 
105
103
  getParentMenu = (ref: NestedMenuRefT): ?NestedMenuRefT => {
@@ -8,18 +8,21 @@ LICENSE file in the root directory of this source tree.
8
8
 
9
9
  import * as React from 'react';
10
10
 
11
- import {LocaleContext} from '../locale/index.js';
12
- import {getOverrides} from '../helpers/overrides.js';
11
+ import { LocaleContext } from '../locale/index.js';
12
+ import { getOverrides } from '../helpers/overrides.js';
13
13
 
14
- import {OPTION_LIST_SIZE} from './constants.js';
14
+ import { OPTION_LIST_SIZE } from './constants.js';
15
15
  import MaybeChildMenu from './maybe-child-menu.js';
16
- import {StyledListItem, StyledListItemAnchor} from './styled-components.js';
17
- import type {OptionListPropsT} from './types.js';
16
+ import { StyledListItem, StyledListItemAnchor } from './styled-components.js';
17
+ import type { OptionListPropsT } from './types.js';
18
18
 
19
- function OptionList(props: OptionListPropsT, ref: React.ElementRef<*>) {
19
+ function OptionList(
20
+ props: OptionListPropsT,
21
+ ref?: { current: null | HTMLElement, ... } | ((null | HTMLElement) => mixed)
22
+ ) {
20
23
  const {
21
24
  getChildMenu,
22
- getItemLabel = item => (item ? item.label : ''),
25
+ getItemLabel = (item) => (item ? item.label : ''),
23
26
  item,
24
27
  onClick = () => {},
25
28
  onMouseEnter = () => {},
@@ -32,16 +35,13 @@ function OptionList(props: OptionListPropsT, ref: React.ElementRef<*>) {
32
35
  ...restProps
33
36
  } = props;
34
37
 
35
- const [ListItem, listItemProps] = getOverrides(
36
- overrides.ListItem,
37
- StyledListItem,
38
- );
38
+ const [ListItem, listItemProps] = getOverrides(overrides.ListItem, StyledListItem);
39
39
  const [ListItemAnchor, listItemAnchorProps] = getOverrides(
40
40
  overrides.ListItemAnchor,
41
- StyledListItemAnchor,
41
+ StyledListItemAnchor
42
42
  );
43
43
 
44
- const getItem = item => {
44
+ const getItem = (item) => {
45
45
  if (item.href && renderHrefAsAnchor) {
46
46
  return (
47
47
  <ListItemAnchor $item={item} href={item.href} {...listItemAnchorProps}>
@@ -55,7 +55,7 @@ function OptionList(props: OptionListPropsT, ref: React.ElementRef<*>) {
55
55
 
56
56
  return (
57
57
  <LocaleContext.Consumer>
58
- {locale => (
58
+ {(locale) => (
59
59
  <MaybeChildMenu
60
60
  getChildMenu={getChildMenu}
61
61
  isOpen={!!$isHighlighted}
@@ -68,9 +68,7 @@ function OptionList(props: OptionListPropsT, ref: React.ElementRef<*>) {
68
68
  <ListItem
69
69
  ref={ref}
70
70
  aria-label={
71
- getChildMenu && getChildMenu(item)
72
- ? locale.menu.parentMenuItemAriaLabel
73
- : null
71
+ getChildMenu && getChildMenu(item) ? locale.menu.parentMenuItemAriaLabel : null
74
72
  }
75
73
  item={item}
76
74
  onClick={onClick}
@@ -80,7 +78,7 @@ function OptionList(props: OptionListPropsT, ref: React.ElementRef<*>) {
80
78
  {...restProps}
81
79
  {...listItemProps}
82
80
  >
83
- {getItem({isHighlighted: $isHighlighted, ...item})}
81
+ {getItem({ isHighlighted: $isHighlighted, ...item })}
84
82
  </ListItem>
85
83
  </MaybeChildMenu>
86
84
  )}
@@ -39,6 +39,7 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
39
39
 
40
40
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
41
41
 
42
+ // flowlint-next-line unclear-type:off
42
43
  function OptionProfile(props, ref) {
43
44
  var item = props.item,
44
45
  getChildMenu = props.getChildMenu,
@@ -96,6 +97,7 @@ function OptionProfile(props, ref) {
96
97
  body = _getProfileItemLabels.body;
97
98
 
98
99
  return /*#__PURE__*/React.createElement(_maybeChildMenu.default, {
100
+ ref: ref,
99
101
  getChildMenu: getChildMenu,
100
102
  isOpen: !!$isHighlighted,
101
103
  item: item,
@@ -18,11 +18,12 @@ import {
18
18
  StyledProfileSubtitle,
19
19
  StyledProfileBody,
20
20
  } from './styled-components.js';
21
- import {getOverrides} from '../helpers/overrides.js';
21
+ import { getOverrides } from '../helpers/overrides.js';
22
22
  // Types
23
- import type {OptionProfilePropsT} from './types.js';
23
+ import type { OptionProfilePropsT } from './types.js';
24
24
 
25
- function OptionProfile(props: OptionProfilePropsT, ref: React.ElementRef<*>) {
25
+ // flowlint-next-line unclear-type:off
26
+ function OptionProfile(props: OptionProfilePropsT, ref: React.ElementRef<any>) {
26
27
  const {
27
28
  item,
28
29
  getChildMenu,
@@ -38,38 +39,33 @@ function OptionProfile(props: OptionProfilePropsT, ref: React.ElementRef<*>) {
38
39
 
39
40
  const [ListItemProfile, listItemProfileProps] = getOverrides(
40
41
  overrides.ListItemProfile,
41
- StyledListItemProfile,
42
+ StyledListItemProfile
42
43
  );
43
44
  const [ProfileImgContainer, profileImgContainerProps] = getOverrides(
44
45
  overrides.ProfileImgContainer,
45
- StyledProfileImgContainer,
46
- );
47
- const [ProfileImg, profileImgProps] = getOverrides(
48
- overrides.ProfileImg,
49
- StyledProfileImg,
46
+ StyledProfileImgContainer
50
47
  );
48
+ const [ProfileImg, profileImgProps] = getOverrides(overrides.ProfileImg, StyledProfileImg);
51
49
  const [ProfileLabelsContainer, profileLabelsContainerProps] = getOverrides(
52
50
  overrides.ProfileLabelsContainer,
53
- StyledProfileLabelsContainer,
51
+ StyledProfileLabelsContainer
54
52
  );
55
53
  const [ProfileTitle, profileTitleProps] = getOverrides(
56
54
  overrides.ProfileTitle,
57
- StyledProfileTitle,
55
+ StyledProfileTitle
58
56
  );
59
57
  const [ProfileSubtitle, profileSubtitleProps] = getOverrides(
60
58
  overrides.ProfileSubtitle,
61
- StyledProfileSubtitle,
62
- );
63
- const [ProfileBody, profileBodyProps] = getOverrides(
64
- overrides.ProfileBody,
65
- StyledProfileBody,
59
+ StyledProfileSubtitle
66
60
  );
61
+ const [ProfileBody, profileBodyProps] = getOverrides(overrides.ProfileBody, StyledProfileBody);
67
62
 
68
63
  const ItemImg = getProfileItemImg(item);
69
- const {title, subtitle, body} = getProfileItemLabels(item);
64
+ const { title, subtitle, body } = getProfileItemLabels(item);
70
65
 
71
66
  return (
72
67
  <MaybeChildMenu
68
+ ref={ref}
73
69
  getChildMenu={getChildMenu}
74
70
  isOpen={!!$isHighlighted}
75
71
  item={item}
@@ -82,11 +78,7 @@ function OptionProfile(props: OptionProfilePropsT, ref: React.ElementRef<*>) {
82
78
  {ItemImg &&
83
79
  (typeof ItemImg === 'string' ? (
84
80
  // Render img src string wrapped with image component
85
- <ProfileImg
86
- src={ItemImg}
87
- alt={getProfileItemImgText(item)}
88
- {...profileImgProps}
89
- />
81
+ <ProfileImg src={ItemImg} alt={getProfileItemImgText(item)} {...profileImgProps} />
90
82
  ) : (
91
83
  // Or just render the entire component user specified
92
84
  <ItemImg {...profileImgProps} />
@@ -94,11 +86,7 @@ function OptionProfile(props: OptionProfilePropsT, ref: React.ElementRef<*>) {
94
86
  </ProfileImgContainer>
95
87
  <ProfileLabelsContainer {...profileLabelsContainerProps}>
96
88
  {title && <ProfileTitle {...profileTitleProps}>{title}</ProfileTitle>}
97
- {subtitle && (
98
- <ProfileSubtitle {...profileSubtitleProps}>
99
- {subtitle}
100
- </ProfileSubtitle>
101
- )}
89
+ {subtitle && <ProfileSubtitle {...profileSubtitleProps}>{subtitle}</ProfileSubtitle>}
102
90
  {body && <ProfileBody {...profileBodyProps}>{body}</ProfileBody>}
103
91
  </ProfileLabelsContainer>
104
92
  </ListItemProfile>
@@ -106,9 +94,7 @@ function OptionProfile(props: OptionProfilePropsT, ref: React.ElementRef<*>) {
106
94
  );
107
95
  }
108
96
 
109
- const forwarded = React.forwardRef<OptionProfilePropsT, HTMLElement>(
110
- OptionProfile,
111
- );
97
+ const forwarded = React.forwardRef<OptionProfilePropsT, HTMLElement>(OptionProfile);
112
98
  forwarded.displayName = 'OptionProfile';
113
99
 
114
100
  export default forwarded;
@@ -374,9 +374,7 @@ var MenuStatefulContainerInner = /*#__PURE__*/function (_React$Component) {
374
374
  var rootRef = this.props.rootRef ? this.props.rootRef : this.rootRef;
375
375
 
376
376
  if (typeof document !== 'undefined') {
377
- if (rootRef.current
378
- /** This condition added to satisfy Flow */
379
- && this.state.highlightedIndex > -1 && this.refList[this.state.highlightedIndex]) {
377
+ if (rootRef.current && this.state.highlightedIndex > -1 && this.refList[this.state.highlightedIndex]) {
380
378
  (0, _utils.scrollItemIntoView)(this.refList[this.state.highlightedIndex].current, rootRef.current, this.state.highlightedIndex === 0, this.state.highlightedIndex === this.getItems().length - 1, 'center');
381
379
  }
382
380
 
@@ -436,7 +434,7 @@ var MenuStatefulContainerInner = /*#__PURE__*/function (_React$Component) {
436
434
  highlightedIndex: -1
437
435
  });
438
436
  }
439
- } // One array to hold all of list item refs
437
+ } // One array to hold all list item refs
440
438
 
441
439
  }, {
442
440
  key: "internalSetState",
@@ -492,6 +490,7 @@ var MenuStatefulContainerInner = /*#__PURE__*/function (_React$Component) {
492
490
  _defineProperty(MenuStatefulContainerInner, "defaultProps", DEFAULT_PROPS);
493
491
 
494
492
  var MenuStatefulContainer = function MenuStatefulContainer(props) {
493
+ //$FlowExpectedError[cannot-spread-inexact]
495
494
  return /*#__PURE__*/React.createElement(MenuStatefulContainerInner, _extends({
496
495
  uidSeed: (0, _reactUid.useUIDSeed)()
497
496
  }, props));
@@ -7,8 +7,8 @@ LICENSE file in the root directory of this source tree.
7
7
  // @flow
8
8
  import * as React from 'react';
9
9
  // Files
10
- import {STATE_CHANGE_TYPES, KEY_STRINGS} from './constants.js';
11
- import {scrollItemIntoView} from './utils.js';
10
+ import { STATE_CHANGE_TYPES, KEY_STRINGS } from './constants.js';
11
+ import { scrollItemIntoView } from './utils.js';
12
12
  // Types
13
13
  import type {
14
14
  StatefulContainerPropsT,
@@ -16,8 +16,9 @@ import type {
16
16
  GetRequiredItemPropsFnT,
17
17
  RenderPropsT,
18
18
  StateReducerFnT,
19
+ ItemT,
19
20
  } from './types.js';
20
- import {useUIDSeed} from 'react-uid';
21
+ import { useUIDSeed } from 'react-uid';
21
22
 
22
23
  const DEFAULT_PROPS = {
23
24
  // keeping it in defaultProps to satisfy Flow
@@ -27,7 +28,7 @@ const DEFAULT_PROPS = {
27
28
  isFocused: false,
28
29
  },
29
30
  typeAhead: true,
30
- keyboardControlNode: {current: null},
31
+ keyboardControlNode: ({ current: null }: { current: null | HTMLElement }),
31
32
  stateReducer: ((changeType, changes) => changes: StateReducerFnT),
32
33
  onItemSelect: () => {},
33
34
  getRequiredItemProps: () => ({}),
@@ -43,8 +44,10 @@ const DEFAULT_PROPS = {
43
44
  };
44
45
 
45
46
  class MenuStatefulContainerInner extends React.Component<
46
- StatefulContainerPropsT & {uidSeed: (item: number) => string},
47
- StatefulContainerStateT,
47
+ StatefulContainerPropsT & { uidSeed: (item: number) => string } & {
48
+ getRequiredItemProps: GetRequiredItemPropsFnT,
49
+ },
50
+ StatefulContainerStateT
48
51
  > {
49
52
  static defaultProps = DEFAULT_PROPS;
50
53
 
@@ -55,7 +58,7 @@ class MenuStatefulContainerInner extends React.Component<
55
58
 
56
59
  // We need to have access to the root component user renders
57
60
  // to correctly facilitate keyboard scrolling behavior
58
- rootRef = (React.createRef(): {current: HTMLElement | null});
61
+ rootRef = (React.createRef<HTMLElement>(): { current: null | HTMLElement });
59
62
  keyboardControlNode = this.props.keyboardControlNode.current;
60
63
  getItems() {
61
64
  if (Array.isArray(this.props.items)) {
@@ -72,7 +75,7 @@ class MenuStatefulContainerInner extends React.Component<
72
75
  const rootRef = this.props.rootRef ? this.props.rootRef : this.rootRef;
73
76
  if (__BROWSER__) {
74
77
  if (
75
- rootRef.current /** This condition added to satisfy Flow */ &&
78
+ rootRef.current &&
76
79
  this.state.highlightedIndex > -1 &&
77
80
  this.refList[this.state.highlightedIndex]
78
81
  ) {
@@ -81,7 +84,7 @@ class MenuStatefulContainerInner extends React.Component<
81
84
  rootRef.current,
82
85
  this.state.highlightedIndex === 0,
83
86
  this.state.highlightedIndex === this.getItems().length - 1,
84
- 'center',
87
+ 'center'
85
88
  );
86
89
  }
87
90
 
@@ -107,28 +110,18 @@ class MenuStatefulContainerInner extends React.Component<
107
110
  }
108
111
  }
109
112
 
110
- componentDidUpdate(
111
- prevProps: StatefulContainerPropsT,
112
- prevState: StatefulContainerStateT,
113
- ) {
113
+ componentDidUpdate(prevProps: StatefulContainerPropsT, prevState: StatefulContainerStateT) {
114
114
  if (__BROWSER__) {
115
115
  if (!prevState.isFocused && this.state.isFocused) {
116
116
  if (this.keyboardControlNode)
117
117
  this.keyboardControlNode.addEventListener('keydown', this.onKeyDown);
118
118
  } else if (prevState.isFocused && !this.state.isFocused) {
119
119
  if (this.keyboardControlNode)
120
- this.keyboardControlNode.removeEventListener(
121
- 'keydown',
122
- this.onKeyDown,
123
- );
120
+ this.keyboardControlNode.removeEventListener('keydown', this.onKeyDown);
124
121
  }
125
122
  }
126
123
  var range = this.getItems().length;
127
- if (
128
- this.props.forceHighlight &&
129
- this.state.highlightedIndex === -1 &&
130
- range > 0
131
- ) {
124
+ if (this.props.forceHighlight && this.state.highlightedIndex === -1 && range > 0) {
132
125
  this.internalSetState(STATE_CHANGE_TYPES.enter, {
133
126
  highlightedIndex: 0,
134
127
  });
@@ -149,35 +142,33 @@ class MenuStatefulContainerInner extends React.Component<
149
142
  !this.props.isNestedMenuVisible(this.rootRef) &&
150
143
  !this.props.forceHighlight
151
144
  ) {
152
- this.setState({highlightedIndex: -1});
145
+ this.setState({ highlightedIndex: -1 });
153
146
  }
154
147
  }
155
148
 
156
- // One array to hold all of list item refs
157
- refList: Array<React$ElementRef<*>> = [];
149
+ // One array to hold all list item refs
150
+ refList: Array<{ current: null | HTMLElement }> = [];
158
151
  // list of ids applied to list items. used to set aria-activedescendant
159
152
  optionIds: string[] = [];
160
153
  //characters input from keyboard, will automatically be clear after some time
161
154
  typeAheadChars: string = '';
162
- //count time for each continous keyboard input
163
- typeAheadTimeOut: * = null;
155
+ //count time for each continuous keyboard input
156
+ typeAheadTimeOut: null | TimeoutID = null;
164
157
 
165
158
  // Internal set state function that will also invoke stateReducer
166
159
 
167
160
  internalSetState(
168
161
  changeType: $Keys<typeof STATE_CHANGE_TYPES>,
169
- changes: $Shape<StatefulContainerStateT>,
162
+ changes: $Shape<StatefulContainerStateT>
170
163
  ) {
171
- const {stateReducer} = this.props;
164
+ const { stateReducer } = this.props;
172
165
 
173
166
  if (
174
167
  this.props.onActiveDescendantChange &&
175
168
  typeof changes.highlightedIndex === 'number' &&
176
169
  this.state.highlightedIndex !== changes.highlightedIndex
177
170
  ) {
178
- this.props.onActiveDescendantChange(
179
- this.optionIds[changes.highlightedIndex],
180
- );
171
+ this.props.onActiveDescendantChange(this.optionIds[changes.highlightedIndex]);
181
172
  }
182
173
 
183
174
  this.setState(stateReducer(changeType, changes, this.state));
@@ -260,7 +251,7 @@ class MenuStatefulContainerInner extends React.Component<
260
251
  // $FlowFixMe
261
252
  rootRef.current,
262
253
  nextIndex === 0,
263
- nextIndex === list.length - 1,
254
+ nextIndex === list.length - 1
264
255
  );
265
256
  }
266
257
  };
@@ -317,33 +308,25 @@ class MenuStatefulContainerInner extends React.Component<
317
308
  // $FlowFixMe
318
309
  rootRef.current,
319
310
  nextIndex === 0,
320
- nextIndex === this.getItems().length - 1,
311
+ nextIndex === this.getItems().length - 1
321
312
  );
322
313
  }
323
314
  };
324
315
 
325
316
  // Handler for enter key
326
317
  handleEnterKey = (event: KeyboardEvent) => {
327
- const {onItemSelect} = this.props;
328
- const {highlightedIndex} = this.state;
318
+ const { onItemSelect } = this.props;
319
+ const { highlightedIndex } = this.state;
329
320
  const items = this.getItems();
330
- if (
331
- items[highlightedIndex] &&
332
- onItemSelect &&
333
- !items[highlightedIndex].disabled
334
- ) {
321
+ if (items[highlightedIndex] && onItemSelect && !items[highlightedIndex].disabled) {
335
322
  event.preventDefault();
336
- onItemSelect({item: items[highlightedIndex], event});
323
+ onItemSelect({ item: items[highlightedIndex], event });
337
324
  }
338
325
  };
339
326
 
340
- handleItemClick = (
341
- index: number,
342
- item: *,
343
- event: SyntheticMouseEvent<HTMLElement>,
344
- ) => {
327
+ handleItemClick = (index: number, item: ItemT, event: SyntheticMouseEvent<HTMLElement>) => {
345
328
  if (this.props.onItemSelect && !item.disabled) {
346
- this.props.onItemSelect({item, event});
329
+ this.props.onItemSelect({ item, event });
347
330
  this.internalSetState(STATE_CHANGE_TYPES.click, {
348
331
  highlightedIndex: index,
349
332
  activedescendantId: this.optionIds[index],
@@ -367,12 +350,11 @@ class MenuStatefulContainerInner extends React.Component<
367
350
  this.refList[index] = itemRef;
368
351
  this.optionIds[index] = this.props.uidSeed(index);
369
352
  }
370
- const {
371
- disabled: disabledVal,
372
- ...requiredItemProps
373
- } = this.props.getRequiredItemProps(item, index);
374
- const disabled =
375
- typeof disabledVal === 'boolean' ? disabledVal : !!item.disabled;
353
+ const { disabled: disabledVal, ...requiredItemProps } = this.props.getRequiredItemProps(
354
+ item,
355
+ index
356
+ );
357
+ const disabled = typeof disabledVal === 'boolean' ? disabledVal : !!item.disabled;
376
358
  return {
377
359
  id: requiredItemProps.id || this.optionIds[index],
378
360
  disabled,
@@ -407,7 +389,7 @@ class MenuStatefulContainerInner extends React.Component<
407
389
  highlightedIndex: 0,
408
390
  });
409
391
  } else {
410
- this.internalSetState(STATE_CHANGE_TYPES.focus, {isFocused: true});
392
+ this.internalSetState(STATE_CHANGE_TYPES.focus, { isFocused: true });
411
393
  }
412
394
 
413
395
  rootRef.current.focus();
@@ -415,7 +397,7 @@ class MenuStatefulContainerInner extends React.Component<
415
397
  };
416
398
 
417
399
  unfocusMenu = () => {
418
- this.internalSetState(STATE_CHANGE_TYPES.focus, {isFocused: false});
400
+ this.internalSetState(STATE_CHANGE_TYPES.focus, { isFocused: false });
419
401
  };
420
402
 
421
403
  resetMenu = () => {
@@ -448,23 +430,21 @@ class MenuStatefulContainerInner extends React.Component<
448
430
  ...restProps,
449
431
  rootRef: this.props.rootRef ? this.props.rootRef : this.rootRef,
450
432
  activedescendantId: this.optionIds[this.state.highlightedIndex],
451
- getRequiredItemProps: (item, index) =>
452
- this.getRequiredItemProps(item, index),
433
+ getRequiredItemProps: (item, index) => this.getRequiredItemProps(item, index),
453
434
  handleMouseLeave: this.handleMouseLeave,
454
435
  highlightedIndex: this.state.highlightedIndex,
455
436
  isFocused: this.state.isFocused,
456
- handleKeyDown: this.props.keyboardControlNode.current
457
- ? event => {}
458
- : this.onKeyDown,
437
+ handleKeyDown: this.props.keyboardControlNode.current ? (event) => {} : this.onKeyDown,
459
438
  focusMenu: this.focusMenu,
460
439
  unfocusMenu: this.unfocusMenu,
461
- }: RenderPropsT),
440
+ }: RenderPropsT)
462
441
  );
463
442
  }
464
443
  }
465
444
 
466
445
  // Remove when MenuStatefulContainer is converted to a functional component.
467
446
  const MenuStatefulContainer = (props: StatefulContainerPropsT) => {
447
+ //$FlowExpectedError[cannot-spread-inexact]
468
448
  return <MenuStatefulContainerInner uidSeed={useUIDSeed()} {...props} />;
469
449
  };
470
450