@splunk/react-ui 4.5.3 → 4.8.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 (460) hide show
  1. package/Accordion.js +7 -7
  2. package/Anchor.js +2 -2
  3. package/Animation.js +2 -2
  4. package/AnimationToggle.js +2 -2
  5. package/Box.js +2 -2
  6. package/Button.js +13 -13
  7. package/ButtonGroup.js +4 -4
  8. package/ButtonSimple.js +6 -6
  9. package/CHANGELOG.md +47 -1
  10. package/Calendar.js +16 -16
  11. package/Card.js +48 -53
  12. package/CardLayout.js +4 -4
  13. package/Chip.js +10 -10
  14. package/Clickable.js +42 -15
  15. package/CloseButton.js +8 -8
  16. package/Code.js +8 -7
  17. package/CollapsiblePanel.js +11 -14
  18. package/Color.js +48 -48
  19. package/ColumnLayout.js +4 -4
  20. package/ComboBox.js +8 -8
  21. package/Concertina.js +15 -15
  22. package/ControlGroup.js +30 -37
  23. package/Date.js +10 -10
  24. package/DefinitionList.js +2 -2
  25. package/Dropdown.js +4 -4
  26. package/EventListener.js +4 -4
  27. package/FetchOptions.js +8 -8
  28. package/File.js +27 -27
  29. package/FormRows.js +21 -23
  30. package/Heading.js +2 -2
  31. package/Image.js +14 -14
  32. package/JSONTree.js +4 -4
  33. package/Layer.js +10 -10
  34. package/Link.js +6 -6
  35. package/List.js +2 -2
  36. package/Markdown.js +28 -16
  37. package/Menu.js +135 -70
  38. package/Message.js +246 -305
  39. package/MessageBar.d.ts +2 -0
  40. package/MessageBar.js +789 -0
  41. package/Modal.js +95 -61
  42. package/ModalLayer.js +5 -4
  43. package/Monogram.js +4 -4
  44. package/Multiselect.js +293 -42
  45. package/Number.js +8 -8
  46. package/Paginator.js +24 -24
  47. package/Paragraph.js +2 -2
  48. package/Popover.js +12 -12
  49. package/Progress.js +6 -6
  50. package/RadioBar.js +25 -12
  51. package/RadioList.js +2 -2
  52. package/Resize.js +8 -8
  53. package/ResultsMenu.js +25 -23
  54. package/ScreenReaderContent.js +2 -2
  55. package/Scroll.js +6 -6
  56. package/ScrollContainerContext.js +2 -2
  57. package/Search.js +14 -14
  58. package/Select.js +286 -36
  59. package/SidePanel.js +6 -6
  60. package/Slider.js +20 -14
  61. package/SlidingPanels.js +4 -4
  62. package/StaticContent.js +2 -2
  63. package/StepBar.js +18 -18
  64. package/Switch.js +17 -31
  65. package/TabBar.js +60 -46
  66. package/TabLayout.js +4 -4
  67. package/Table.js +63 -55
  68. package/Text.js +163 -146
  69. package/Tooltip.js +14 -14
  70. package/TransitionOpen.js +69 -44
  71. package/WaitSpinner.js +2 -2
  72. package/cypress/plugins/index.ts +15 -0
  73. package/cypress/support/commands.ts +1 -0
  74. package/cypress/support/index.ts +10 -0
  75. package/cypress.json +12 -0
  76. package/package.json +27 -8
  77. package/stubs-splunkui.d.ts +1 -0
  78. package/types/src/Accordion/docs/examples/Controlled.d.ts +2 -0
  79. package/types/src/Accordion/docs/examples/FixedHeight.d.ts +2 -0
  80. package/types/src/Accordion/docs/examples/InDropdown.d.ts +2 -0
  81. package/types/src/Accordion/docs/examples/Inset.d.ts +2 -0
  82. package/types/src/Accordion/docs/examples/Uncontrolled.d.ts +2 -0
  83. package/types/src/Anchor/docs/examples/Basic.d.ts +2 -0
  84. package/types/src/Animation/Animation.d.ts +0 -1
  85. package/types/src/AnimationToggle/docs/examples/Provider.d.ts +11 -0
  86. package/types/src/AnimationToggle/docs/examples/ReducedMotionComponent.d.ts +2 -0
  87. package/types/src/AnimationToggle/docs/examples/ReducedMotionHook.d.ts +2 -0
  88. package/types/src/AnimationToggle/docs/examples/ToggleComponent.d.ts +9 -0
  89. package/types/src/AnimationToggle/docs/examples/ToggleHook.d.ts +2 -0
  90. package/types/src/Button/docs/examples/Basic.d.ts +2 -0
  91. package/types/src/Button/docs/examples/Block.d.ts +2 -0
  92. package/types/src/Button/docs/examples/Disabled.d.ts +2 -0
  93. package/types/src/Button/docs/examples/Icons.d.ts +2 -0
  94. package/types/src/Button/docs/examples/Menus.d.ts +2 -0
  95. package/types/src/Button/docs/examples/Selected.d.ts +2 -0
  96. package/types/src/Button/docs/examples/To.d.ts +2 -0
  97. package/types/src/Button/docs/examples/Truncated.d.ts +2 -0
  98. package/types/src/Button/docs/examples/prisma/Basic.d.ts +2 -0
  99. package/types/src/Button/docs/examples/prisma/Block.d.ts +2 -0
  100. package/types/src/Button/docs/examples/prisma/Disabled.d.ts +2 -0
  101. package/types/src/Button/docs/examples/prisma/Icons.d.ts +2 -0
  102. package/types/src/Button/docs/examples/prisma/Menus.d.ts +2 -0
  103. package/types/src/Button/docs/examples/prisma/To.d.ts +2 -0
  104. package/types/src/Button/docs/examples/prisma/Truncated.d.ts +2 -0
  105. package/types/src/ButtonGroup/docs/examples/Basic.d.ts +1 -0
  106. package/types/src/ButtonGroup/docs/examples/prisma/Basic.d.ts +1 -0
  107. package/types/src/Calendar/DateTable.d.ts +0 -1
  108. package/types/src/Card/docs/examples/Basic.d.ts +2 -0
  109. package/types/src/Card/docs/examples/Clickable.d.ts +2 -0
  110. package/types/src/Card/docs/examples/Full.d.ts +2 -0
  111. package/types/src/Card/docs/examples/Images.d.ts +2 -0
  112. package/types/src/Card/docs/examples/Selectable.d.ts +2 -0
  113. package/types/src/Card/docs/examples/prisma/Actions.d.ts +2 -0
  114. package/types/src/CardLayout/docs/examples/Basic.d.ts +2 -0
  115. package/types/src/CardLayout/docs/examples/Interactive.d.ts +28 -0
  116. package/types/src/Chip/docs/examples/Appearance.d.ts +2 -0
  117. package/types/src/Chip/docs/examples/Basic.d.ts +2 -0
  118. package/types/src/Chip/docs/examples/CustomColors.d.ts +2 -0
  119. package/types/src/Chip/docs/examples/Disabled.d.ts +2 -0
  120. package/types/src/Chip/docs/examples/Icon.d.ts +2 -0
  121. package/types/src/Chip/docs/examples/Removable.d.ts +2 -0
  122. package/types/src/Chip/docs/examples/prisma/Appearance.d.ts +2 -0
  123. package/types/src/Clickable/Clickable.d.ts +12 -2
  124. package/types/src/Clickable/NavigationProvider.d.ts +13 -2
  125. package/types/src/Clickable/docs/examples/Basic.d.ts +2 -0
  126. package/types/src/Clickable/docs/examples/NavigationProvider.d.ts +2 -0
  127. package/types/src/Code/docs/examples/Default.d.ts +2 -0
  128. package/types/src/Code/docs/examples/HideIndent.d.ts +2 -0
  129. package/types/src/Code/docs/examples/Language.d.ts +2 -0
  130. package/types/src/CollapsiblePanel/docs/examples/BasicControlled.d.ts +2 -0
  131. package/types/src/CollapsiblePanel/docs/examples/BasicUncontrolled.d.ts +2 -0
  132. package/types/src/CollapsiblePanel/docs/examples/MultiControlled.d.ts +2 -0
  133. package/types/src/CollapsiblePanel/docs/examples/MultiUncontrolled.d.ts +2 -0
  134. package/types/src/CollapsiblePanel/docs/examples/TitleWithActions.d.ts +2 -0
  135. package/types/src/CollapsiblePanel/docs/examples/prisma/BasicControlled.d.ts +2 -0
  136. package/types/src/CollapsiblePanel/docs/examples/prisma/BasicUncontrolled.d.ts +2 -0
  137. package/types/src/CollapsiblePanel/docs/examples/prisma/Content.d.ts +1 -0
  138. package/types/src/CollapsiblePanel/docs/examples/prisma/MultiControlled.d.ts +2 -0
  139. package/types/src/CollapsiblePanel/docs/examples/prisma/MultiUncontrolled.d.ts +2 -0
  140. package/types/src/Color/Color.d.ts +3 -3
  141. package/types/src/Color/docs/examples/Controlled.d.ts +2 -0
  142. package/types/src/Color/docs/examples/Null.d.ts +2 -0
  143. package/types/src/Color/docs/examples/ThemeVariables.d.ts +1 -0
  144. package/types/src/Color/docs/examples/Transparent.d.ts +2 -0
  145. package/types/src/Color/docs/examples/Uncontrolled.d.ts +2 -0
  146. package/types/src/Color/docs/examples/prisma/Controlled.d.ts +2 -0
  147. package/types/src/Color/docs/examples/prisma/CustomizedPalette.d.ts +1 -0
  148. package/types/src/Color/docs/examples/prisma/HideInput.d.ts +2 -0
  149. package/types/src/Color/docs/examples/prisma/ThemeVariables.d.ts +1 -0
  150. package/types/src/Color/docs/examples/prisma/Uncontrolled.d.ts +2 -0
  151. package/types/src/ColumnLayout/docs/examples/AlignItems.d.ts +2 -0
  152. package/types/src/ColumnLayout/docs/examples/Basic.d.ts +2 -0
  153. package/types/src/ColumnLayout/docs/examples/Dividers.d.ts +2 -0
  154. package/types/src/ColumnLayout/docs/examples/Gutters.d.ts +2 -0
  155. package/types/src/ComboBox/docs/examples/Controlled.d.ts +2 -0
  156. package/types/src/ComboBox/docs/examples/Fetching.d.ts +2 -0
  157. package/types/src/ComboBox/docs/examples/Headings.d.ts +1 -0
  158. package/types/src/ComboBox/docs/examples/Label.d.ts +2 -0
  159. package/types/src/ComboBox/docs/examples/LoadMoreOnScrollBottom.d.ts +2 -0
  160. package/types/src/ComboBox/docs/examples/Uncontrolled.d.ts +2 -0
  161. package/types/src/Concertina/docs/examples/Basic.d.ts +2 -0
  162. package/types/src/Concertina/docs/examples/Disabled.d.ts +9 -0
  163. package/types/src/Concertina/docs/examples/Status.d.ts +2 -0
  164. package/types/src/ControlGroup/docs/examples/Basic.d.ts +2 -0
  165. package/types/src/ControlGroup/docs/examples/CustomizedLabelTarget.d.ts +10 -0
  166. package/types/src/ControlGroup/docs/examples/Error.d.ts +2 -0
  167. package/types/src/ControlGroup/docs/examples/HelpWithLinks.d.ts +2 -0
  168. package/types/src/ControlGroup/docs/examples/LabelTop.d.ts +2 -0
  169. package/types/src/ControlGroup/docs/examples/LayoutFill.d.ts +2 -0
  170. package/types/src/ControlGroup/docs/examples/LayoutFillJoin.d.ts +2 -0
  171. package/types/src/ControlGroup/docs/examples/LayoutNone.d.ts +2 -0
  172. package/types/src/Date/Date.d.ts +3 -3
  173. package/types/src/Date/Icon.d.ts +0 -1
  174. package/types/src/Date/docs/examples/Basic.d.ts +2 -0
  175. package/types/src/Date/docs/examples/Controlled.d.ts +10 -0
  176. package/types/src/Date/docs/examples/CustomDate.d.ts +2 -0
  177. package/types/src/Date/docs/examples/Disabled.d.ts +2 -0
  178. package/types/src/Date/docs/examples/HighlightToday.d.ts +10 -0
  179. package/types/src/DefinitionList/docs/examples/Basic.d.ts +2 -0
  180. package/types/src/DefinitionList/docs/examples/Customize.d.ts +2 -0
  181. package/types/src/Dropdown/docs/examples/Basic.d.ts +2 -0
  182. package/types/src/Dropdown/docs/examples/BasicMenu.d.ts +2 -0
  183. package/types/src/Dropdown/docs/examples/ControlledDropdown.d.ts +2 -0
  184. package/types/src/Dropdown/docs/examples/Dialog.d.ts +2 -0
  185. package/types/src/Dropdown/docs/examples/OtherToggles.d.ts +2 -0
  186. package/types/src/Dropdown/docs/examples/ScrollContainer.d.ts +2 -0
  187. package/types/src/Dropdown/docs/examples/ScrollingMenu.d.ts +2 -0
  188. package/types/src/Dropdown/docs/examples/prisma/Basic.d.ts +2 -0
  189. package/types/src/Dropdown/docs/examples/prisma/BasicMenu.d.ts +2 -0
  190. package/types/src/Dropdown/docs/examples/prisma/ControlledDropdown.d.ts +2 -0
  191. package/types/src/Dropdown/docs/examples/prisma/Dialog.d.ts +2 -0
  192. package/types/src/Dropdown/docs/examples/prisma/OtherToggles.d.ts +2 -0
  193. package/types/src/Dropdown/docs/examples/prisma/ScrollingMenu.d.ts +2 -0
  194. package/types/src/File/Icon.d.ts +0 -1
  195. package/types/src/File/IconCloud.d.ts +0 -1
  196. package/types/src/File/PaperClip.d.ts +0 -1
  197. package/types/src/File/Retry.d.ts +0 -1
  198. package/types/src/File/Trash.d.ts +0 -1
  199. package/types/src/File/docs/examples/CustomChildren.d.ts +12 -0
  200. package/types/src/File/docs/examples/CustomizedMessages.d.ts +1 -0
  201. package/types/src/File/docs/examples/Disabled.d.ts +12 -0
  202. package/types/src/File/docs/examples/DropAnywhere.d.ts +15 -0
  203. package/types/src/File/docs/examples/Error.d.ts +1 -0
  204. package/types/src/File/docs/examples/FullScreen.d.ts +15 -0
  205. package/types/src/File/docs/examples/Multi.d.ts +16 -0
  206. package/types/src/File/docs/examples/Progress.d.ts +15 -0
  207. package/types/src/File/docs/examples/Single.d.ts +12 -0
  208. package/types/src/File/docs/examples/prisma/Disabled.d.ts +12 -0
  209. package/types/src/File/docs/examples/prisma/Error.d.ts +1 -0
  210. package/types/src/File/docs/examples/prisma/Progress.d.ts +1 -0
  211. package/types/src/FormRows/docs/examples/Basic.d.ts +12 -0
  212. package/types/src/FormRows/docs/examples/Header.d.ts +12 -0
  213. package/types/src/FormRows/docs/examples/Menu.d.ts +13 -0
  214. package/types/src/FormRows/docs/examples/ReorderOnly.d.ts +10 -0
  215. package/types/src/Heading/docs/examples/Basic.d.ts +2 -0
  216. package/types/src/Image/docs/examples/Basic.d.ts +2 -0
  217. package/types/src/JSONTree/docs/examples/Basic.d.ts +1 -0
  218. package/types/src/JSONTree/docs/examples/Events.d.ts +13 -0
  219. package/types/src/Layer/docs/examples/Basic.d.ts +2 -0
  220. package/types/src/Link/docs/examples/Basic.d.ts +2 -0
  221. package/types/src/Link/docs/examples/Disabled.d.ts +2 -0
  222. package/types/src/Link/docs/examples/Inline.d.ts +2 -0
  223. package/types/src/Link/docs/examples/NewTab.d.ts +2 -0
  224. package/types/src/List/docs/examples/Decimal.d.ts +2 -0
  225. package/types/src/List/docs/examples/Disc.d.ts +2 -0
  226. package/types/src/List/docs/examples/LowerAlpha.d.ts +2 -0
  227. package/types/src/List/docs/examples/UpperAlpha.d.ts +2 -0
  228. package/types/src/Markdown/docs/examples/Basic.d.ts +2 -0
  229. package/types/src/Markdown/docs/examples/I18n.d.ts +2 -0
  230. package/types/src/Markdown/docs/examples/RenderProps.d.ts +2 -0
  231. package/types/src/Markdown/renderers/MarkdownCode.d.ts +0 -1
  232. package/types/src/Markdown/renderers/MarkdownCodeBlock.d.ts +0 -1
  233. package/types/src/Markdown/renderers/MarkdownImage.d.ts +0 -1
  234. package/types/src/Menu/Divider.d.ts +0 -1
  235. package/types/src/Menu/docs/examples/Basic.d.ts +2 -0
  236. package/types/src/Menu/docs/examples/Complex.d.ts +2 -0
  237. package/types/src/Menu/docs/examples/Descriptions.d.ts +2 -0
  238. package/types/src/Menu/docs/examples/Disabled.d.ts +2 -0
  239. package/types/src/Menu/docs/examples/Dividers.d.ts +2 -0
  240. package/types/src/Menu/docs/examples/Headings.d.ts +2 -0
  241. package/types/src/Menu/docs/examples/Icons.d.ts +2 -0
  242. package/types/src/Menu/docs/examples/Links.d.ts +2 -0
  243. package/types/src/Menu/docs/examples/MatchRanges.d.ts +2 -0
  244. package/types/src/Menu/docs/examples/Selectable.d.ts +2 -0
  245. package/types/src/Menu/docs/examples/SelectableWithIcons.d.ts +2 -0
  246. package/types/src/Menu/docs/examples/Truncate.d.ts +2 -0
  247. package/types/src/Message/Link.d.ts +2 -0
  248. package/types/src/Message/Message.d.ts +6 -1
  249. package/types/src/Message/docs/examples/Basic.d.ts +2 -0
  250. package/types/src/Message/docs/examples/Content.d.ts +2 -0
  251. package/types/src/Message/docs/examples/Fill.d.ts +2 -0
  252. package/types/src/Message/docs/examples/Removable.d.ts +2 -0
  253. package/types/src/Message/docs/examples/prisma/Title.d.ts +2 -0
  254. package/types/src/MessageBar/MessageBar.d.ts +28 -0
  255. package/types/src/MessageBar/docs/examples/Types.d.ts +2 -0
  256. package/types/src/MessageBar/index.d.ts +2 -0
  257. package/types/src/Modal/Modal.d.ts +3 -0
  258. package/types/src/Modal/ModalContext.d.ts +6 -0
  259. package/types/src/Modal/docs/examples/Basic.d.ts +2 -0
  260. package/types/src/Modal/docs/examples/InitialFocus.d.ts +2 -0
  261. package/types/src/Modal/docs/examples/TypicalUsage.d.ts +2 -0
  262. package/types/src/Modal/docs/examples/Undismissable.d.ts +2 -0
  263. package/types/src/Modal/docs/examples/prisma/TypicalUsage.d.ts +2 -0
  264. package/types/src/Monogram/Monogram.d.ts +2 -2
  265. package/types/src/Monogram/docs/examples/BackgroundAuto.d.ts +1 -0
  266. package/types/src/Monogram/docs/examples/BackgroundCustom.d.ts +1 -0
  267. package/types/src/Monogram/docs/examples/Basic.d.ts +1 -0
  268. package/types/src/Monogram/docs/examples/Interactive.d.ts +1 -0
  269. package/types/src/Monogram/docs/examples/Size.d.ts +1 -0
  270. package/types/src/Multiselect/Multiselect.d.ts +1 -0
  271. package/types/src/Multiselect/docs/examples/Children.d.ts +10 -0
  272. package/types/src/Multiselect/docs/examples/Compact.d.ts +2 -0
  273. package/types/src/Multiselect/docs/examples/Controlled.d.ts +10 -0
  274. package/types/src/Multiselect/docs/examples/CustomizeSelected.d.ts +10 -0
  275. package/types/src/Multiselect/docs/examples/Disabled.d.ts +10 -0
  276. package/types/src/Multiselect/docs/examples/Error.d.ts +10 -0
  277. package/types/src/Multiselect/docs/examples/Fetching.d.ts +23 -0
  278. package/types/src/Multiselect/docs/examples/Headings.d.ts +1 -0
  279. package/types/src/Multiselect/docs/examples/Icons.d.ts +2 -0
  280. package/types/src/Multiselect/docs/examples/LoadMoreOnScrollBottom.d.ts +26 -0
  281. package/types/src/Multiselect/docs/examples/NewValues.d.ts +10 -0
  282. package/types/src/Multiselect/docs/examples/TabInput.d.ts +10 -0
  283. package/types/src/Multiselect/docs/examples/Uncontrolled.d.ts +2 -0
  284. package/types/src/Number/IncrementIcon.d.ts +0 -1
  285. package/types/src/Number/Number.d.ts +3 -3
  286. package/types/src/Number/docs/examples/Basic.d.ts +10 -0
  287. package/types/src/Number/docs/examples/Disabled.d.ts +2 -0
  288. package/types/src/Number/docs/examples/Error.d.ts +2 -0
  289. package/types/src/Number/docs/examples/Limits.d.ts +10 -0
  290. package/types/src/Number/docs/examples/Locale.d.ts +10 -0
  291. package/types/src/Number/docs/examples/Uncontrolled.d.ts +2 -0
  292. package/types/src/Paginator/PageSeparator.d.ts +0 -1
  293. package/types/src/Paginator/docs/examples/Basic.d.ts +2 -0
  294. package/types/src/Paragraph/docs/examples/Basic.d.ts +2 -0
  295. package/types/src/Popover/Popover.d.ts +1 -2
  296. package/types/src/Popover/docs/examples/Basic.d.ts +2 -0
  297. package/types/src/Progress/docs/examples/Basic.d.ts +2 -0
  298. package/types/src/Progress/docs/examples/prisma/Type.d.ts +2 -0
  299. package/types/src/RadioBar/Option.d.ts +13 -3
  300. package/types/src/RadioBar/RadioBar.d.ts +5 -3
  301. package/types/src/RadioBar/docs/examples/AdornmentAriaExamples.d.ts +2 -0
  302. package/types/src/RadioBar/docs/examples/Basic.d.ts +2 -0
  303. package/types/src/RadioBar/docs/examples/Disabled.d.ts +2 -0
  304. package/types/src/RadioBar/docs/examples/Error.d.ts +2 -0
  305. package/types/src/RadioBar/docs/examples/Uncontrolled.d.ts +2 -0
  306. package/types/src/RadioList/docs/examples/Basic.d.ts +2 -0
  307. package/types/src/RadioList/docs/examples/Composing.d.ts +2 -0
  308. package/types/src/RadioList/docs/examples/Disabled.d.ts +2 -0
  309. package/types/src/RadioList/docs/examples/Error.d.ts +2 -0
  310. package/types/src/RadioList/docs/examples/Row.d.ts +2 -0
  311. package/types/src/RadioList/docs/examples/Uncontrolled.d.ts +2 -0
  312. package/types/src/Resize/docs/examples/Appearance.d.ts +2 -0
  313. package/types/src/Resize/docs/examples/Percentage.d.ts +2 -0
  314. package/types/src/Resize/docs/examples/SizingInner.d.ts +2 -0
  315. package/types/src/Resize/docs/examples/SizingOuter.d.ts +2 -0
  316. package/types/src/Resize/docs/examples/Typical.d.ts +2 -0
  317. package/types/src/ScreenReaderContent/docs/examples/Basic.d.ts +2 -0
  318. package/types/src/Scroll/docs/examples/Controlled.d.ts +13 -0
  319. package/types/src/Scroll/docs/examples/Uncontrolled.d.ts +2 -0
  320. package/types/src/ScrollContainerContext/docs/examples/Consumer.d.ts +2 -0
  321. package/types/src/ScrollContainerContext/docs/examples/Provider.d.ts +2 -0
  322. package/types/src/Search/docs/examples/Controlled.d.ts +2 -0
  323. package/types/src/Search/docs/examples/Loading.d.ts +2 -0
  324. package/types/src/Search/docs/examples/Options.d.ts +2 -0
  325. package/types/src/Search/docs/examples/Results.d.ts +2 -0
  326. package/types/src/Select/Select.d.ts +8 -3
  327. package/types/src/Select/SelectBase.d.ts +17 -5
  328. package/types/src/Select/docs/examples/Appearance.d.ts +14 -0
  329. package/types/src/Select/docs/examples/Basic.d.ts +10 -0
  330. package/types/src/Select/docs/examples/Children.d.ts +10 -0
  331. package/types/src/Select/docs/examples/Descriptions.d.ts +10 -0
  332. package/types/src/Select/docs/examples/Error.d.ts +2 -0
  333. package/types/src/Select/docs/examples/Fetching.d.ts +23 -0
  334. package/types/src/Select/docs/examples/Filter.d.ts +10 -0
  335. package/types/src/Select/docs/examples/Headings.d.ts +10 -0
  336. package/types/src/Select/docs/examples/Icons.d.ts +10 -0
  337. package/types/src/Select/docs/examples/LoadMoreOnScrollBottom.d.ts +25 -0
  338. package/types/src/Select/docs/examples/Prefix.d.ts +10 -0
  339. package/types/src/Select/docs/examples/Truncate.d.ts +10 -0
  340. package/types/src/Select/docs/examples/Uncontrolled.d.ts +2 -0
  341. package/types/src/Select/docs/examples/prisma/Appearance.d.ts +14 -0
  342. package/types/src/Select/matchUtils.d.ts +12 -0
  343. package/types/src/SidePanel/docs/examples/Basic.d.ts +2 -0
  344. package/types/src/SidePanel/docs/examples/ChangeSize.d.ts +2 -0
  345. package/types/src/SidePanel/docs/examples/Composition.d.ts +2 -0
  346. package/types/src/Slider/Slider.d.ts +3 -3
  347. package/types/src/Slider/docs/examples/Basic.d.ts +2 -0
  348. package/types/src/Slider/docs/examples/Controlled.d.ts +12 -0
  349. package/types/src/Slider/docs/examples/CustomLabels.d.ts +12 -0
  350. package/types/src/Slider/docs/examples/Disabled.d.ts +2 -0
  351. package/types/src/Slider/docs/examples/StepMarks.d.ts +2 -0
  352. package/types/src/Slider/docs/examples/prisma/Error.d.ts +2 -0
  353. package/types/src/SlidingPanels/docs/examples/Basic.d.ts +11 -0
  354. package/types/src/SlidingPanels/docs/examples/Dropdown.d.ts +11 -0
  355. package/types/src/SlidingPanels/docs/examples/Modal.d.ts +14 -0
  356. package/types/src/StaticContent/docs/examples/Basic.d.ts +2 -0
  357. package/types/src/StaticContent/docs/examples/FieldValue.d.ts +2 -0
  358. package/types/src/StepBar/docs/examples/Basic.d.ts +2 -0
  359. package/types/src/StepBar/docs/examples/prisma/Error.d.ts +2 -0
  360. package/types/src/Switch/CheckIcon.d.ts +0 -1
  361. package/types/src/Switch/Switch.d.ts +7 -7
  362. package/types/src/Switch/docs/examples/Basic.d.ts +10 -0
  363. package/types/src/Switch/docs/examples/Disabled.d.ts +10 -0
  364. package/types/src/Switch/docs/examples/Error.d.ts +2 -0
  365. package/types/src/TabBar/docs/examples/Basic.d.ts +2 -0
  366. package/types/src/TabBar/docs/examples/IconsInline.d.ts +2 -0
  367. package/types/src/TabBar/docs/examples/IconsSmall.d.ts +2 -0
  368. package/types/src/TabBar/docs/examples/Tooltips.d.ts +2 -0
  369. package/types/src/TabBar/docs/examples/Vertical.d.ts +2 -0
  370. package/types/src/TabBar/docs/examples/VerticalSmallIcons.d.ts +2 -0
  371. package/types/src/TabBar/docs/examples/WithCount.d.ts +2 -0
  372. package/types/src/TabBar/docs/examples/prisma/Context.d.ts +2 -0
  373. package/types/src/TabBar/docs/examples/prisma/Disabled.d.ts +2 -0
  374. package/types/src/TabLayout/docs/examples/AutoActivate.d.ts +2 -0
  375. package/types/src/TabLayout/docs/examples/Controlled.d.ts +2 -0
  376. package/types/src/TabLayout/docs/examples/Icons.d.ts +2 -0
  377. package/types/src/TabLayout/docs/examples/Uncontrolled.d.ts +2 -0
  378. package/types/src/TabLayout/docs/examples/Vertical.d.ts +2 -0
  379. package/types/src/TabLayout/docs/examples/VerticalIcons.d.ts +2 -0
  380. package/types/src/TabLayout/docs/examples/prisma/Context.d.ts +2 -0
  381. package/types/src/Table/DragHandle.d.ts +0 -1
  382. package/types/src/Table/HeadExpandRowsIcon.d.ts +0 -1
  383. package/types/src/Table/Toggle.d.ts +0 -1
  384. package/types/src/Table/docs/examples/Basic.d.ts +2 -0
  385. package/types/src/Table/docs/examples/Click.d.ts +16 -0
  386. package/types/src/Table/docs/examples/ClickRows.d.ts +16 -0
  387. package/types/src/Table/docs/examples/Complex.d.ts +39 -0
  388. package/types/src/Table/docs/examples/DockedHeader.d.ts +2 -0
  389. package/types/src/Table/docs/examples/ExpandableRows.d.ts +2 -0
  390. package/types/src/Table/docs/examples/ExpandableRowsControlled.d.ts +2 -0
  391. package/types/src/Table/docs/examples/FixedHeader.d.ts +2 -0
  392. package/types/src/Table/docs/examples/HeadDropdownCell.d.ts +18 -0
  393. package/types/src/Table/docs/examples/ReorderColumns.d.ts +21 -0
  394. package/types/src/Table/docs/examples/ReorderRows.d.ts +21 -0
  395. package/types/src/Table/docs/examples/Resizable.d.ts +23 -0
  396. package/types/src/Table/docs/examples/ResizableFill.d.ts +23 -0
  397. package/types/src/Table/docs/examples/Selectable.d.ts +18 -0
  398. package/types/src/Table/docs/examples/SortableColumns.d.ts +12 -0
  399. package/types/src/Table/docs/examples/prisma/Basic.d.ts +2 -0
  400. package/types/src/Table/docs/examples/prisma/Complex.d.ts +48 -0
  401. package/types/src/Table/docs/examples/prisma/DockedHeader.d.ts +2 -0
  402. package/types/src/Table/docs/examples/prisma/RowActions.d.ts +39 -0
  403. package/types/src/Text/IconOutlinedHide.d.ts +0 -1
  404. package/types/src/Text/IconOutlinedView.d.ts +0 -1
  405. package/types/src/Text/Text.d.ts +10 -3
  406. package/types/src/Text/docs/examples/Basic.d.ts +10 -0
  407. package/types/src/Text/docs/examples/CustomizedIcon.d.ts +2 -0
  408. package/types/src/Text/docs/examples/Disabled.d.ts +2 -0
  409. package/types/src/Text/docs/examples/Error.d.ts +10 -0
  410. package/types/src/Text/docs/examples/Inline.d.ts +10 -0
  411. package/types/src/Text/docs/examples/Multiline.d.ts +10 -0
  412. package/types/src/Text/docs/examples/Password.d.ts +10 -0
  413. package/types/src/Text/docs/examples/Search.d.ts +10 -0
  414. package/types/src/Text/docs/examples/Uncontrolled.d.ts +2 -0
  415. package/types/src/Text/docs/examples/prisma/Multiline.d.ts +10 -0
  416. package/types/src/Text/docs/examples/prisma/Search.d.ts +10 -0
  417. package/types/src/Tooltip/InfoIcon.d.ts +0 -1
  418. package/types/src/Tooltip/docs/examples/Basic.d.ts +2 -0
  419. package/types/src/Tooltip/docs/examples/ContentRelationship.d.ts +2 -0
  420. package/types/src/Tooltip/docs/examples/Controlled.d.ts +12 -0
  421. package/types/src/Tooltip/docs/examples/CustomContent.d.ts +2 -0
  422. package/types/src/Tooltip/docs/examples/CustomDelay.d.ts +2 -0
  423. package/types/src/TransitionOpen/TransitionOpen.d.ts +1 -0
  424. package/types/src/TransitionOpen/docs/examples/ExpandHeight.d.ts +2 -0
  425. package/types/src/TransitionOpen/docs/examples/ExpandWidth.d.ts +2 -0
  426. package/types/src/TransitionOpen/docs/examples/None.d.ts +2 -0
  427. package/types/src/TransitionOpen/docs/examples/SlideFromBottom.d.ts +2 -0
  428. package/types/src/TransitionOpen/docs/examples/SlideFromLeft.d.ts +2 -0
  429. package/types/src/TransitionOpen/docs/examples/SlideFromRight.d.ts +2 -0
  430. package/types/src/TransitionOpen/docs/examples/SlideFromTop.d.ts +2 -0
  431. package/types/src/WaitSpinner/docs/examples/Basic.d.ts +2 -0
  432. package/types/src/WaitSpinner/docs/examples/prisma/Basic.d.ts +2 -0
  433. package/types/src/fixtures/FetchOptions.d.ts +2 -0
  434. package/types/src/fixtures/text.d.ts +1 -0
  435. package/types/src/icons/Alert.d.ts +0 -1
  436. package/types/src/icons/AlertFilled.d.ts +0 -1
  437. package/types/src/icons/CaretDown.d.ts +0 -1
  438. package/types/src/icons/CaretRight.d.ts +0 -1
  439. package/types/src/icons/Check.d.ts +0 -1
  440. package/types/src/icons/ChevronDown.d.ts +0 -1
  441. package/types/src/icons/ChevronLeft.d.ts +0 -1
  442. package/types/src/icons/ChevronRight.d.ts +0 -1
  443. package/types/src/icons/CrossMark.d.ts +0 -1
  444. package/types/src/icons/External.d.ts +0 -1
  445. package/types/src/icons/InfoFilled.d.ts +0 -1
  446. package/types/src/icons/More.d.ts +0 -1
  447. package/types/src/icons/MoreVertical.d.ts +0 -1
  448. package/types/src/icons/Plus.d.ts +0 -1
  449. package/types/src/icons/SVG.d.ts +0 -1
  450. package/types/src/icons/Search.d.ts +0 -1
  451. package/types/src/icons/Sort.d.ts +0 -1
  452. package/types/src/icons/SortedDown.d.ts +0 -1
  453. package/types/src/icons/SortedUp.d.ts +0 -1
  454. package/types/src/icons/Success.d.ts +0 -1
  455. package/types/src/icons/SuccessFilled.d.ts +0 -1
  456. package/types/src/icons/WarningFilled.d.ts +0 -1
  457. package/types/src/utils/types.d.ts +0 -1
  458. package/unit-test-setup-testing-library.ts +9 -0
  459. package/usePrevious.js +2 -2
  460. package/types/src/Message/Banner.d.ts +0 -8
package/Menu.js CHANGED
@@ -82,7 +82,7 @@ module.exports =
82
82
  /******/
83
83
  /******/
84
84
  /******/ // Load entry module and return exports
85
- /******/ return __webpack_require__(__webpack_require__.s = 110);
85
+ /******/ return __webpack_require__(__webpack_require__.s = 116);
86
86
  /******/ })
87
87
  /************************************************************************/
88
88
  /******/ ({
@@ -102,33 +102,13 @@ module.exports = require("prop-types");
102
102
  /***/ }),
103
103
 
104
104
  /***/ 11:
105
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
106
-
107
- "use strict";
108
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return updateReactRef; });
109
- /**
110
- * Updates a React ref. Callback refs and object refs (from `createRef` and `useRef`) are supported.
111
- *
112
- * @param ref - The React callback or object ref. Can be `null` or `undefined`.
113
- * @param current - The new value of the ref.
114
- */
115
- function updateReactRef(ref, current) {
116
- if (ref) {
117
- if (typeof ref === 'function') {
118
- ref(current);
119
- } else {
120
- // the public signature of this util uses React.Ref<T> to mirror the way React types refs.
121
- // the intention here is to signal "we will take care of setting 'current', not you".
122
- ref.current = current; // eslint-disable-line no-param-reassign
123
- }
124
- }
125
- }
126
-
105
+ /***/ (function(module, exports) {
127
106
 
107
+ module.exports = require("@splunk/react-ui/Clickable");
128
108
 
129
109
  /***/ }),
130
110
 
131
- /***/ 110:
111
+ /***/ 116:
132
112
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
133
113
 
134
114
  "use strict";
@@ -151,14 +131,14 @@ var external_prop_types_ = __webpack_require__(1);
151
131
  var external_prop_types_default = /*#__PURE__*/__webpack_require__.n(external_prop_types_);
152
132
 
153
133
  // EXTERNAL MODULE: external "lodash/omit"
154
- var omit_ = __webpack_require__(42);
134
+ var omit_ = __webpack_require__(43);
155
135
  var omit_default = /*#__PURE__*/__webpack_require__.n(omit_);
156
136
 
157
137
  // EXTERNAL MODULE: external "@splunk/react-ui/Popover"
158
138
  var Popover_ = __webpack_require__(16);
159
139
 
160
140
  // EXTERNAL MODULE: external "@splunk/ui-utils/focus"
161
- var focus_ = __webpack_require__(25);
141
+ var focus_ = __webpack_require__(26);
162
142
 
163
143
  // EXTERNAL MODULE: external "@splunk/ui-utils/keyboard"
164
144
  var keyboard_ = __webpack_require__(9);
@@ -233,7 +213,7 @@ Divider.filterConsecutive = true;
233
213
  Divider.filterLast = true;
234
214
  /* harmony default export */ var Menu_Divider = (Divider);
235
215
  // EXTERNAL MODULE: external "@splunk/react-ui/Heading"
236
- var Heading_ = __webpack_require__(64);
216
+ var Heading_ = __webpack_require__(69);
237
217
  var Heading_default = /*#__PURE__*/__webpack_require__.n(Heading_);
238
218
 
239
219
  // EXTERNAL MODULE: external "@splunk/themes/useSplunkTheme"
@@ -337,10 +317,10 @@ Heading.filterLast = true;
337
317
  var external_lodash_ = __webpack_require__(4);
338
318
 
339
319
  // EXTERNAL MODULE: ./src/icons/Check.tsx
340
- var Check = __webpack_require__(48);
320
+ var Check = __webpack_require__(53);
341
321
 
342
322
  // EXTERNAL MODULE: external "@splunk/react-icons/TriangleRightSmall"
343
- var TriangleRightSmall_ = __webpack_require__(89);
323
+ var TriangleRightSmall_ = __webpack_require__(98);
344
324
  var TriangleRightSmall_default = /*#__PURE__*/__webpack_require__.n(TriangleRightSmall_);
345
325
 
346
326
  // EXTERNAL MODULE: ./src/icons/ThemedIcon.tsx
@@ -378,11 +358,11 @@ function CaretRight(props) {
378
358
  var ChevronRight = __webpack_require__(27);
379
359
 
380
360
  // EXTERNAL MODULE: external "@splunk/react-ui/Clickable"
381
- var Clickable_ = __webpack_require__(12);
361
+ var Clickable_ = __webpack_require__(11);
382
362
  var Clickable_default = /*#__PURE__*/__webpack_require__.n(Clickable_);
383
363
 
384
364
  // EXTERNAL MODULE: external "@splunk/react-ui/Switch"
385
- var Switch_ = __webpack_require__(65);
365
+ var Switch_ = __webpack_require__(70);
386
366
  var Switch_default = /*#__PURE__*/__webpack_require__.n(Switch_);
387
367
 
388
368
  // CONCATENATED MODULE: ./src/Menu/ItemStyles.ts
@@ -424,10 +404,7 @@ var StyledItemIcon = external_styled_components_default.a.span.withConfig({
424
404
  prisma: 'initial',
425
405
  enterprise: 'middle'
426
406
  }), Object(themes_["pick"])({
427
- prisma: {
428
- comfortable: Object(external_styled_components_["css"])(["color:", ";min-width:24px;min-height:24px;"], themes_["variables"].contentColorMuted),
429
- compact: Object(external_styled_components_["css"])(["color:", ";min-width:20px;min-height:20px;"], themes_["variables"].contentColorMuted)
430
- },
407
+ prisma: Object(external_styled_components_["css"])(["color:", ";display:inline-flex;align-items:center;min-width:20px;min-height:20px;"], themes_["variables"].contentColorMuted),
431
408
  enterprise: Object(external_styled_components_["css"])(["transform:translateY(-1px);"])
432
409
  }));
433
410
  var StyledClickable = external_styled_components_default()(Clickable_default.a).withConfig({
@@ -563,7 +540,7 @@ var StyledSubmenu = external_styled_components_default.a.span.withConfig({
563
540
  }));
564
541
 
565
542
  // EXTERNAL MODULE: ./src/utils/updateReactRef.ts
566
- var updateReactRef = __webpack_require__(11);
543
+ var updateReactRef = __webpack_require__(12);
567
544
 
568
545
  // CONCATENATED MODULE: ./src/Menu/Item.tsx
569
546
  function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
@@ -833,7 +810,6 @@ var Item_Item = /*#__PURE__*/function (_Component) {
833
810
  interactive: false,
834
811
  selected: selected,
835
812
  selectedLabel: "Selected",
836
- unselectedLabel: "",
837
813
  value: "menu-item"
838
814
  }), hasSubmenu && /*#__PURE__*/external_react_default.a.createElement(StyledSubmenu, null, isPrisma ? /*#__PURE__*/external_react_default.a.createElement(CaretRight, null) : /*#__PURE__*/external_react_default.a.createElement(ChevronRight["a" /* default */], null)), descriptionRight && /*#__PURE__*/external_react_default.a.createElement(StyledItemDescriptionRight, {
839
815
  "data-test": "description"
@@ -859,7 +835,7 @@ var ItemWithTheme = Object(themes_["withSplunkTheme"])(Item_Item);
859
835
  ItemWithTheme.propTypes = Item_Item.propTypes;
860
836
  /* harmony default export */ var Menu_Item = (ItemWithTheme);
861
837
  // EXTERNAL MODULE: external "@splunk/react-ui/Scroll"
862
- var Scroll_ = __webpack_require__(61);
838
+ var Scroll_ = __webpack_require__(66);
863
839
  var Scroll_default = /*#__PURE__*/__webpack_require__.n(Scroll_);
864
840
 
865
841
  // CONCATENATED MODULE: ./src/Menu/MenuStyles.ts
@@ -873,11 +849,13 @@ var adjacentSiblingStyles = Object(external_styled_components_["css"])(["border-
873
849
  var MenuStyles_Styled = external_styled_components_default.a.div.withConfig({
874
850
  displayName: "MenuStyles__Styled",
875
851
  componentId: "sc-1olffp9-0"
876
- })(["", ";background-color:", ";border-radius:", ";min-width:60px;overflow:auto;position:relative;", " & + &{", "}"], themes_["mixins"].reset('block'), Object(themes_["pick"])({
852
+ })(["", ";background-color:", ";border-radius:", ";min-width:60px;overflow:auto;position:relative;", " &:focus{outline:0;box-shadow:", ";", "}& + &{", "}"], themes_["mixins"].reset('block'), Object(themes_["pick"])({
877
853
  enterprise: themes_["variables"].backgroundColor,
878
854
  prisma: themes_["variables"].backgroundColorPopup
879
855
  }), themes_["variables"].borderRadius, Object(themes_["pick"])({
880
856
  prisma: Object(external_styled_components_["css"])(["padding:8px 0;"])
857
+ }), themes_["variables"].focusShadowInset, Object(themes_["pick"])({
858
+ prisma: Object(external_styled_components_["css"])(["background:", ";"], themes_["variables"].interactiveColorOverlayHover)
881
859
  }), adjacentSiblingStyles);
882
860
  var StyledScroll = external_styled_components_default()(MenuStyles_Styled.withComponent(Scroll_default.a)).withConfig({
883
861
  displayName: "MenuStyles__StyledScroll",
@@ -888,6 +866,9 @@ MenuStyles_Styled,
888
866
  /* sc-sel */
889
867
  MenuStyles_Styled, adjacentSiblingStyles);
890
868
 
869
+ // EXTERNAL MODULE: ./src/utils/navigateList.ts
870
+ var navigateList = __webpack_require__(39);
871
+
891
872
  // CONCATENATED MODULE: ./src/Menu/Menu.tsx
892
873
  function Menu_extends() { Menu_extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return Menu_extends.apply(this, arguments); }
893
874
 
@@ -919,6 +900,7 @@ function Menu_objectWithoutPropertiesLoose(source, excluded) { if (source == nul
919
900
 
920
901
 
921
902
 
903
+
922
904
  var Menu_propTypes = {
923
905
  children: external_prop_types_default.a.node,
924
906
 
@@ -963,6 +945,10 @@ function Menu(_ref) {
963
945
 
964
946
  var itemRefs = [];
965
947
  var itemKeyCounter = 0;
948
+ var firstEnabledItemKey;
949
+ var focusedItemKeyIsDisabled = false;
950
+ var hasSelectedItems = false;
951
+ var hasSelectedEnabledItems = false;
966
952
 
967
953
  var handleKeyDown = function handleKeyDown(e) {
968
954
  // SUI-2734: keeping this active even if controlledExternally is set
@@ -973,14 +959,13 @@ function Menu(_ref) {
973
959
  var itemToFocusRef; // the "retainFocus" checks here mimic the prior tab key functionality
974
960
 
975
961
  if (key === 'down' || retainFocus && Object(focus_["isTabKey"])(e)) {
976
- itemToFocusRef = itemRefs[focusedItemKey + 1] || itemRefs[0];
962
+ itemToFocusRef = Object(navigateList["a" /* getNextListItem */])(itemRefs, focusedItemKey, focusedItemKey + 1);
977
963
  } else if (key === 'up' || retainFocus && Object(focus_["isTabKey"])(e) && e.shiftKey) {
978
- itemToFocusRef = itemRefs[focusedItemKey - 1] || itemRefs[itemRefs.length - 1];
964
+ itemToFocusRef = Object(navigateList["b" /* getPrevListItem */])(itemRefs, focusedItemKey, focusedItemKey - 1);
979
965
  } else if (key === 'home') {
980
- // eslint-disable-next-line prefer-destructuring
981
- itemToFocusRef = itemRefs[0];
966
+ itemToFocusRef = Object(navigateList["a" /* getNextListItem */])(itemRefs, focusedItemKey, 0);
982
967
  } else if (key === 'end') {
983
- itemToFocusRef = itemRefs[itemRefs.length - 1];
968
+ itemToFocusRef = Object(navigateList["b" /* getPrevListItem */])(itemRefs, focusedItemKey, itemRefs.length - 1);
984
969
  }
985
970
 
986
971
  if (itemToFocusRef != null) {
@@ -1029,6 +1014,22 @@ function Menu(_ref) {
1029
1014
  }
1030
1015
  };
1031
1016
 
1017
+ if (firstEnabledItemKey == null && (!('disabled' in item.props) || !item.props.disabled)) {
1018
+ firstEnabledItemKey = itemKeyCounter;
1019
+ }
1020
+
1021
+ if (focusedItemKey === itemKeyCounter && 'disabled' in item.props && item.props.disabled) {
1022
+ focusedItemKeyIsDisabled = true;
1023
+ }
1024
+
1025
+ if ('selected' in item.props && item.props.selected) {
1026
+ hasSelectedItems = true;
1027
+
1028
+ if ('disabled' in item.props && !item.props.disabled) {
1029
+ hasSelectedEnabledItems = true;
1030
+ }
1031
+ }
1032
+
1032
1033
  var tabIndex = !controlledExternally && focusedItemKey === itemKeyCounter ? undefined : -1;
1033
1034
  acc.push( /*#__PURE__*/external_react_default.a.cloneElement(item, {
1034
1035
  itemKey: itemKeyCounter,
@@ -1047,17 +1048,22 @@ function Menu(_ref) {
1047
1048
  acc.push(item);
1048
1049
  return acc;
1049
1050
  }, []);
1050
- return stopScrollPropagation ? /*#__PURE__*/external_react_default.a.createElement(StyledScroll, Menu_extends({
1051
- "data-test": "menu",
1052
- elementRef: elementRef,
1051
+
1052
+ if (firstEnabledItemKey !== focusedItemKey && (!hasSelectedItems || hasSelectedEnabledItems) && focusedItemKeyIsDisabled && firstEnabledItemKey != null) {
1053
+ setFocusedItemKey(firstEnabledItemKey);
1054
+ }
1055
+
1056
+ var sharedProps = {
1057
+ 'data-test': 'menu',
1053
1058
  onKeyDown: handleKeyDown,
1054
1059
  role: role,
1060
+ tabIndex: firstEnabledItemKey == null && !controlledExternally ? 0 : undefined
1061
+ };
1062
+ return stopScrollPropagation ? /*#__PURE__*/external_react_default.a.createElement(StyledScroll, Menu_extends({}, sharedProps, {
1063
+ elementRef: elementRef,
1055
1064
  stopScrollPropagation: true
1056
- }, omit_default()(otherProps, 'tagName')), childrenCleaned) : /*#__PURE__*/external_react_default.a.createElement(MenuStyles_Styled, Menu_extends({
1057
- "data-test": "menu",
1058
- onKeyDown: handleKeyDown,
1059
- ref: elementRef,
1060
- role: role
1065
+ }, omit_default()(otherProps, 'tagName')), childrenCleaned) : /*#__PURE__*/external_react_default.a.createElement(MenuStyles_Styled, Menu_extends({}, sharedProps, {
1066
+ ref: elementRef
1061
1067
  }, otherProps), childrenCleaned);
1062
1068
  }
1063
1069
 
@@ -1076,9 +1082,29 @@ Menu.Heading = Menu_Heading;
1076
1082
  /***/ }),
1077
1083
 
1078
1084
  /***/ 12:
1079
- /***/ (function(module, exports) {
1085
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1086
+
1087
+ "use strict";
1088
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return updateReactRef; });
1089
+ /**
1090
+ * Updates a React ref. Callback refs and object refs (from `createRef` and `useRef`) are supported.
1091
+ *
1092
+ * @param ref - The React callback or object ref. Can be `null` or `undefined`.
1093
+ * @param current - The new value of the ref.
1094
+ */
1095
+ function updateReactRef(ref, current) {
1096
+ if (ref) {
1097
+ if (typeof ref === 'function') {
1098
+ ref(current);
1099
+ } else {
1100
+ // the public signature of this util uses React.Ref<T> to mirror the way React types refs.
1101
+ // the intention here is to signal "we will take care of setting 'current', not you".
1102
+ ref.current = current; // eslint-disable-line no-param-reassign
1103
+ }
1104
+ }
1105
+ }
1106
+
1080
1107
 
1081
- module.exports = require("@splunk/react-ui/Clickable");
1082
1108
 
1083
1109
  /***/ }),
1084
1110
 
@@ -1096,7 +1122,7 @@ module.exports = require("react");
1096
1122
 
1097
1123
  /***/ }),
1098
1124
 
1099
- /***/ 25:
1125
+ /***/ 26:
1100
1126
  /***/ (function(module, exports) {
1101
1127
 
1102
1128
  module.exports = require("@splunk/ui-utils/focus");
@@ -1172,6 +1198,45 @@ module.exports = require("@splunk/react-icons/ChevronRight");
1172
1198
 
1173
1199
  module.exports = require("@splunk/themes/useSplunkTheme");
1174
1200
 
1201
+ /***/ }),
1202
+
1203
+ /***/ 39:
1204
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
1205
+
1206
+ "use strict";
1207
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getNextListItem; });
1208
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getPrevListItem; });
1209
+ // A utility for keyboard navigation of lists
1210
+ function getNextListItem(refs, currentIndex, nextIndex) {
1211
+ for (var i = 0; i < refs.length; i += 1) {
1212
+ var _refs$pointer$current;
1213
+
1214
+ var pointer = (i + nextIndex) % refs.length;
1215
+
1216
+ if (((_refs$pointer$current = refs[pointer].current) === null || _refs$pointer$current === void 0 ? void 0 : _refs$pointer$current.props.disabled) !== true) {
1217
+ return refs[pointer];
1218
+ }
1219
+ }
1220
+
1221
+ return refs[currentIndex];
1222
+ }
1223
+
1224
+ function getPrevListItem(refs, currentIndex, prevIndex) {
1225
+ for (var i = refs.length; i > 0; i -= 1) {
1226
+ var _refs$pointer$current2;
1227
+
1228
+ var pointer = (i + prevIndex) % refs.length;
1229
+
1230
+ if (((_refs$pointer$current2 = refs[pointer].current) === null || _refs$pointer$current2 === void 0 ? void 0 : _refs$pointer$current2.props.disabled) !== true) {
1231
+ return refs[pointer];
1232
+ }
1233
+ }
1234
+
1235
+ return refs[currentIndex];
1236
+ }
1237
+
1238
+
1239
+
1175
1240
  /***/ }),
1176
1241
 
1177
1242
  /***/ 4:
@@ -1181,28 +1246,28 @@ module.exports = require("lodash");
1181
1246
 
1182
1247
  /***/ }),
1183
1248
 
1184
- /***/ 42:
1249
+ /***/ 43:
1185
1250
  /***/ (function(module, exports) {
1186
1251
 
1187
1252
  module.exports = require("lodash/omit");
1188
1253
 
1189
1254
  /***/ }),
1190
1255
 
1191
- /***/ 45:
1256
+ /***/ 47:
1192
1257
  /***/ (function(module, exports) {
1193
1258
 
1194
1259
  module.exports = require("@splunk/react-icons/Check");
1195
1260
 
1196
1261
  /***/ }),
1197
1262
 
1198
- /***/ 48:
1263
+ /***/ 53:
1199
1264
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1200
1265
 
1201
1266
  "use strict";
1202
1267
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Check; });
1203
1268
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
1204
1269
  /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1205
- /* harmony import */ var _splunk_react_icons_Check__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45);
1270
+ /* harmony import */ var _splunk_react_icons_Check__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(47);
1206
1271
  /* harmony import */ var _splunk_react_icons_Check__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_splunk_react_icons_Check__WEBPACK_IMPORTED_MODULE_1__);
1207
1272
  /* harmony import */ var _ThemedIcon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
1208
1273
  /* harmony import */ var _SVG__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6);
@@ -1270,27 +1335,20 @@ function SVG(props) {
1270
1335
 
1271
1336
  /***/ }),
1272
1337
 
1273
- /***/ 61:
1338
+ /***/ 66:
1274
1339
  /***/ (function(module, exports) {
1275
1340
 
1276
1341
  module.exports = require("@splunk/react-ui/Scroll");
1277
1342
 
1278
1343
  /***/ }),
1279
1344
 
1280
- /***/ 64:
1345
+ /***/ 69:
1281
1346
  /***/ (function(module, exports) {
1282
1347
 
1283
1348
  module.exports = require("@splunk/react-ui/Heading");
1284
1349
 
1285
1350
  /***/ }),
1286
1351
 
1287
- /***/ 65:
1288
- /***/ (function(module, exports) {
1289
-
1290
- module.exports = require("@splunk/react-ui/Switch");
1291
-
1292
- /***/ }),
1293
-
1294
1352
  /***/ 7:
1295
1353
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1296
1354
 
@@ -1409,10 +1467,10 @@ Icon.defaultProps = defaultProps;
1409
1467
 
1410
1468
  /***/ }),
1411
1469
 
1412
- /***/ 89:
1470
+ /***/ 70:
1413
1471
  /***/ (function(module, exports) {
1414
1472
 
1415
- module.exports = require("@splunk/react-icons/TriangleRightSmall");
1473
+ module.exports = require("@splunk/react-ui/Switch");
1416
1474
 
1417
1475
  /***/ }),
1418
1476
 
@@ -1421,6 +1479,13 @@ module.exports = require("@splunk/react-icons/TriangleRightSmall");
1421
1479
 
1422
1480
  module.exports = require("@splunk/ui-utils/keyboard");
1423
1481
 
1482
+ /***/ }),
1483
+
1484
+ /***/ 98:
1485
+ /***/ (function(module, exports) {
1486
+
1487
+ module.exports = require("@splunk/react-icons/TriangleRightSmall");
1488
+
1424
1489
  /***/ })
1425
1490
 
1426
1491
  /******/ });