@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/Select.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 = 163);
85
+ /******/ return __webpack_require__(__webpack_require__.s = 171);
86
86
  /******/ })
87
87
  /************************************************************************/
88
88
  /******/ ({
@@ -115,7 +115,14 @@ module.exports = require("@splunk/react-ui/Menu");
115
115
 
116
116
  /***/ }),
117
117
 
118
- /***/ 163:
118
+ /***/ 17:
119
+ /***/ (function(module, exports) {
120
+
121
+ module.exports = require("@splunk/react-ui/Button");
122
+
123
+ /***/ }),
124
+
125
+ /***/ 171:
119
126
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
120
127
 
121
128
  "use strict";
@@ -142,8 +149,8 @@ var external_lodash_ = __webpack_require__(4);
142
149
  // EXTERNAL MODULE: external "@splunk/ui-utils/i18n"
143
150
  var i18n_ = __webpack_require__(5);
144
151
 
145
- // EXTERNAL MODULE: ./src/Select/SelectBase.tsx + 1 modules
146
- var SelectBase = __webpack_require__(41);
152
+ // EXTERNAL MODULE: ./src/Select/SelectBase.tsx + 2 modules
153
+ var SelectBase = __webpack_require__(42);
147
154
 
148
155
  // EXTERNAL MODULE: ./src/Select/OptionBase.tsx
149
156
  var OptionBase = __webpack_require__(28);
@@ -317,6 +324,7 @@ function Select_defineProperty(obj, key, value) { if (key in obj) { Object.defin
317
324
  /** @public */
318
325
 
319
326
  var Select_propTypes = {
327
+ allowKeyMatching: external_prop_types_default.a.bool,
320
328
  animateLoading: external_prop_types_default.a.bool,
321
329
  appearance: external_prop_types_default.a.oneOf(['default', 'link', 'primary', 'pill', 'toggle', 'flat']),
322
330
  append: external_prop_types_default.a.bool,
@@ -351,6 +359,7 @@ var Select_propTypes = {
351
359
  value: external_prop_types_default.a.oneOfType([external_prop_types_default.a.string, external_prop_types_default.a.number, external_prop_types_default.a.bool])
352
360
  };
353
361
  var Select_defaultProps = {
362
+ allowKeyMatching: true,
354
363
  animateLoading: false,
355
364
  appearance: 'toggle',
356
365
  append: false,
@@ -455,13 +464,6 @@ Select_defineProperty(Select_Select, "Divider", SelectBase["a" /* Divider */]);
455
464
 
456
465
 
457
466
 
458
- /***/ }),
459
-
460
- /***/ 17:
461
- /***/ (function(module, exports) {
462
-
463
- module.exports = require("@splunk/react-ui/Button");
464
-
465
467
  /***/ }),
466
468
 
467
469
  /***/ 19:
@@ -478,14 +480,14 @@ module.exports = require("react");
478
480
 
479
481
  /***/ }),
480
482
 
481
- /***/ 21:
483
+ /***/ 23:
482
484
  /***/ (function(module, exports) {
483
485
 
484
486
  module.exports = require("@splunk/react-ui/Text");
485
487
 
486
488
  /***/ }),
487
489
 
488
- /***/ 24:
490
+ /***/ 25:
489
491
  /***/ (function(module, exports) {
490
492
 
491
493
  module.exports = require("@splunk/ui-utils/filter");
@@ -741,7 +743,7 @@ module.exports = require("lodash");
741
743
 
742
744
  /***/ }),
743
745
 
744
- /***/ 41:
746
+ /***/ 42:
745
747
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
746
748
 
747
749
  "use strict";
@@ -765,7 +767,7 @@ var external_prop_types_default = /*#__PURE__*/__webpack_require__.n(external_pr
765
767
  var external_lodash_ = __webpack_require__(4);
766
768
 
767
769
  // EXTERNAL MODULE: external "@splunk/ui-utils/filter"
768
- var filter_ = __webpack_require__(24);
770
+ var filter_ = __webpack_require__(25);
769
771
 
770
772
  // EXTERNAL MODULE: external "@splunk/ui-utils/id"
771
773
  var id_ = __webpack_require__(10);
@@ -792,12 +794,15 @@ var ResultsMenu_ = __webpack_require__(32);
792
794
  var ResultsMenu_default = /*#__PURE__*/__webpack_require__.n(ResultsMenu_);
793
795
 
794
796
  // EXTERNAL MODULE: external "@splunk/react-ui/Text"
795
- var Text_ = __webpack_require__(21);
797
+ var Text_ = __webpack_require__(23);
796
798
  var Text_default = /*#__PURE__*/__webpack_require__.n(Text_);
797
799
 
798
800
  // EXTERNAL MODULE: ./src/icons/CaretDown.tsx
799
801
  var CaretDown = __webpack_require__(36);
800
802
 
803
+ // EXTERNAL MODULE: ./src/icons/Search.tsx
804
+ var Search = __webpack_require__(44);
805
+
801
806
  // EXTERNAL MODULE: ./src/Select/OptionBase.tsx
802
807
  var OptionBase = __webpack_require__(28);
803
808
 
@@ -842,23 +847,36 @@ var StyledFilter = external_styled_components_default.a.div.withConfig({
842
847
  enterprise: '8px',
843
848
  prisma: '10px 16px'
844
849
  }));
850
+ var StyledSearchIconWrapper = external_styled_components_default.a.span.withConfig({
851
+ displayName: "SelectBaseStyles__StyledSearchIconWrapper",
852
+ componentId: "sc-16cj7sk-4"
853
+ })(["color:", ";pointer-events:none;padding:", ";"], Object(themes_["pick"])({
854
+ enterprise: {
855
+ light: themes_["variables"].gray60,
856
+ dark: themes_["variables"].white
857
+ },
858
+ prisma: themes_["variables"].contentColorMuted
859
+ }), Object(themes_["pick"])({
860
+ comfortable: '0 8px',
861
+ compact: '0 6px'
862
+ }));
845
863
  var StyledCount = external_styled_components_default.a.span.withConfig({
846
864
  displayName: "SelectBaseStyles__StyledCount",
847
- componentId: "sc-16cj7sk-4"
865
+ componentId: "sc-16cj7sk-5"
848
866
  })(["padding-right:", ";"], Object(themes_["pick"])({
849
867
  enterprise: themes_["variables"].spacingQuarter,
850
868
  prisma: themes_["variables"].spacingXSmall
851
869
  }));
852
870
  var StyledControlsLink = external_styled_components_default()(Link_default.a).withConfig({
853
871
  displayName: "SelectBaseStyles__StyledControlsLink",
854
- componentId: "sc-16cj7sk-5"
872
+ componentId: "sc-16cj7sk-6"
855
873
  })(["", ";"], function (_ref3) {
856
874
  var $disabled = _ref3.$disabled;
857
875
  return $disabled && Object(external_styled_components_["css"])(["color:", ";"], themes_["variables"].contentColorDisabled);
858
876
  });
859
877
  var StyledToggleAllControls = external_styled_components_default.a.div.withConfig({
860
878
  displayName: "SelectBaseStyles__StyledToggleAllControls",
861
- componentId: "sc-16cj7sk-6"
879
+ componentId: "sc-16cj7sk-7"
862
880
  })(["padding:", ";", ""], Object(themes_["pick"])({
863
881
  enterprise: "5px 8px",
864
882
  prisma: '10px 16px'
@@ -873,6 +891,50 @@ var StyledToggleAllControls = external_styled_components_default.a.div.withConfi
873
891
  }
874
892
  }));
875
893
 
894
+ // CONCATENATED MODULE: ./src/Select/matchUtils.ts
895
+ var charFromMatchOption = function charFromMatchOption(option, charIndex) {
896
+ return option ? option.label.charAt(charIndex).toLowerCase() : '';
897
+ };
898
+
899
+ var fuzzyMatch = function fuzzyMatch(options, matchChar) {
900
+ if (!options.length) {
901
+ return options;
902
+ }
903
+
904
+ var defaultMatch = null;
905
+ var hasMatch = false;
906
+ var matches = options.filter(function (option) {
907
+ var characterValue = charFromMatchOption(option, matchChar.index);
908
+
909
+ if (characterValue === matchChar.value) {
910
+ hasMatch = true;
911
+ return true;
912
+ } // If we haven't found a match yet, keep track of the next closest match.
913
+ // Secondary matching looks for the closest character of a higher value, and failing that, closest of a lower value.
914
+
915
+
916
+ if (!hasMatch) {
917
+ var defaultValue = charFromMatchOption(defaultMatch, matchChar.index);
918
+
919
+ if (!defaultValue) {
920
+ defaultMatch = option;
921
+ } else if (characterValue > matchChar.value) {
922
+ if (defaultValue < matchChar.value) {
923
+ defaultMatch = option;
924
+ } else if (defaultValue > characterValue) {
925
+ defaultMatch = option;
926
+ }
927
+ } else if (characterValue > defaultValue) {
928
+ defaultMatch = option;
929
+ }
930
+ }
931
+
932
+ return false;
933
+ });
934
+ return matches.length === 0 && defaultMatch ? [defaultMatch] : matches;
935
+ };
936
+
937
+
876
938
  // CONCATENATED MODULE: ./src/Select/SelectBase.tsx
877
939
  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); }
878
940
 
@@ -939,7 +1001,10 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
939
1001
 
940
1002
 
941
1003
 
1004
+
1005
+
942
1006
  var propTypes = {
1007
+ allowKeyMatching: external_prop_types_default.a.bool,
943
1008
  allowNewValues: external_prop_types_default.a.bool,
944
1009
  animateLoading: external_prop_types_default.a.bool,
945
1010
  appearance: external_prop_types_default.a.oneOf(['default', 'link', 'primary', 'pill', 'toggle', 'flat']),
@@ -979,6 +1044,7 @@ var propTypes = {
979
1044
  values: external_prop_types_default.a.array
980
1045
  };
981
1046
  var defaultProps = {
1047
+ allowKeyMatching: true,
982
1048
  allowNewValues: false,
983
1049
  animateLoading: false,
984
1050
  appearance: 'toggle',
@@ -1033,7 +1099,7 @@ var SelectBase_SelectBase = /*#__PURE__*/function (_Component) {
1033
1099
 
1034
1100
  _defineProperty(_assertThisInitialized(_this), "dropdown", null);
1035
1101
 
1036
- _defineProperty(_assertThisInitialized(_this), "firstSelectedOption", null);
1102
+ _defineProperty(_assertThisInitialized(_this), "firstSelectedEnabledOption", null);
1037
1103
 
1038
1104
  _defineProperty(_assertThisInitialized(_this), "firstSelectedOptionIndex", void 0);
1039
1105
 
@@ -1043,6 +1109,25 @@ var SelectBase_SelectBase = /*#__PURE__*/function (_Component) {
1043
1109
 
1044
1110
  _defineProperty(_assertThisInitialized(_this), "selectedOptionCount", void 0);
1045
1111
 
1112
+ _defineProperty(_assertThisInitialized(_this), "optionRefsByKey", void 0);
1113
+
1114
+ _defineProperty(_assertThisInitialized(_this), "matchCharacter", void 0);
1115
+
1116
+ _defineProperty(_assertThisInitialized(_this), "matchTimeout", void 0);
1117
+
1118
+ _defineProperty(_assertThisInitialized(_this), "currentMatchOptions", void 0);
1119
+
1120
+ _defineProperty(_assertThisInitialized(_this), "availableMatchOptions", void 0);
1121
+
1122
+ _defineProperty(_assertThisInitialized(_this), "resetMatches", function () {
1123
+ _this.matchCharacter = null;
1124
+ _this.currentMatchOptions = [];
1125
+
1126
+ if (_this.matchTimeout) {
1127
+ clearTimeout(_this.matchTimeout);
1128
+ }
1129
+ });
1130
+
1046
1131
  _defineProperty(_assertThisInitialized(_this), "handleSelectAll", function (e) {
1047
1132
  var _this$getCurrentValue, _this$props$onChange, _this$props2;
1048
1133
 
@@ -1159,9 +1244,69 @@ var SelectBase_SelectBase = /*#__PURE__*/function (_Component) {
1159
1244
  var value = _ref.value;
1160
1245
  e.preventDefault();
1161
1246
 
1247
+ if (!_this.state.open) {
1248
+ return;
1249
+ }
1250
+
1162
1251
  _this.toggleValue(e, value);
1163
1252
  });
1164
1253
 
1254
+ _defineProperty(_assertThisInitialized(_this), "handleMenuOptionKeyDown", function (e, optionIndex) {
1255
+ var currentKey = e.nativeEvent.key; // Checking for a single character to avoid complications from double-byte languages and emojis.
1256
+
1257
+ if (currentKey.length === 1) {
1258
+ var matches = [];
1259
+ var character = {
1260
+ index: 0,
1261
+ value: currentKey
1262
+ };
1263
+
1264
+ if (!_this.matchCharacter) {
1265
+ if (currentKey === ' ') {
1266
+ _this.resetMatches();
1267
+
1268
+ return;
1269
+ }
1270
+
1271
+ matches = fuzzyMatch(_this.availableMatchOptions, character);
1272
+ } else if (_this.currentMatchOptions.length > 1) {
1273
+ character.index = _this.matchCharacter.index + 1;
1274
+ matches = fuzzyMatch(_this.currentMatchOptions, character);
1275
+ }
1276
+
1277
+ if (matches.length) {
1278
+ var matchIndex = 0; // If the active option is a first character match, cycle to the next matching option.
1279
+
1280
+ if (character.index === 0 && matches.length > 1) {
1281
+ var activeMatchIndex = matches.indexOf(_this.availableMatchOptions[optionIndex]);
1282
+
1283
+ if (activeMatchIndex >= 0) {
1284
+ matchIndex = activeMatchIndex === matches.length - 1 ? 0 : activeMatchIndex + 1;
1285
+ }
1286
+ }
1287
+
1288
+ var optionToFocusRef = _this.optionRefsByKey[matches[matchIndex].itemKey];
1289
+
1290
+ if (optionToFocusRef != null) {
1291
+ var _optionToFocusRef$foc;
1292
+
1293
+ optionToFocusRef === null || optionToFocusRef === void 0 ? void 0 : (_optionToFocusRef$foc = optionToFocusRef.focus) === null || _optionToFocusRef$foc === void 0 ? void 0 : _optionToFocusRef$foc.call(optionToFocusRef);
1294
+ }
1295
+ }
1296
+
1297
+ _this.currentMatchOptions = matches;
1298
+ _this.matchCharacter = character;
1299
+
1300
+ if (_this.matchTimeout) {
1301
+ clearTimeout(_this.matchTimeout);
1302
+ }
1303
+
1304
+ _this.matchTimeout = setTimeout(_this.resetMatches, 500);
1305
+ e.preventDefault();
1306
+ e.stopPropagation();
1307
+ }
1308
+ });
1309
+
1165
1310
  _defineProperty(_assertThisInitialized(_this), "handleTextChange", function (e, _ref2) {
1166
1311
  var _this$props$onFilterC, _this$props5;
1167
1312
 
@@ -1207,8 +1352,8 @@ var SelectBase_SelectBase = /*#__PURE__*/function (_Component) {
1207
1352
 
1208
1353
  (_this$props$onOpen = (_this$props6 = _this.props).onOpen) === null || _this$props$onOpen === void 0 ? void 0 : _this$props$onOpen.call(_this$props6);
1209
1354
 
1210
- if (_this.firstSelectedOption && !_this.hasFilter()) {
1211
- _this.firstSelectedOption.focus();
1355
+ if (_this.firstSelectedEnabledOption && !_this.hasFilter()) {
1356
+ _this.firstSelectedEnabledOption.focus();
1212
1357
  } else {
1213
1358
  var _this$firstSelectedOp;
1214
1359
 
@@ -1253,8 +1398,16 @@ var SelectBase_SelectBase = /*#__PURE__*/function (_Component) {
1253
1398
  }
1254
1399
  });
1255
1400
 
1256
- _defineProperty(_assertThisInitialized(_this), "handleSelectedItemMount", function (c) {
1257
- _this.firstSelectedOption = c;
1401
+ _defineProperty(_assertThisInitialized(_this), "handleOptionMount", function (c, itemKey, isFirst) {
1402
+ if (isFirst) {
1403
+ _this.firstSelectedEnabledOption = c;
1404
+ }
1405
+
1406
+ if (c == null) {
1407
+ delete _this.optionRefsByKey[itemKey];
1408
+ } else {
1409
+ _this.optionRefsByKey[itemKey] = c;
1410
+ }
1258
1411
  });
1259
1412
 
1260
1413
  _defineProperty(_assertThisInitialized(_this), "createChildren", function () {
@@ -1263,10 +1416,13 @@ var SelectBase_SelectBase = /*#__PURE__*/function (_Component) {
1263
1416
  textHasFocus = _this$state.textHasFocus,
1264
1417
  topValuesState = _this$state.topValues;
1265
1418
  var _this$props10 = _this.props,
1419
+ allowKeyMatching = _this$props10.allowKeyMatching,
1266
1420
  allowNewValues = _this$props10.allowNewValues,
1267
1421
  filter = _this$props10.filter,
1268
1422
  multiple = _this$props10.multiple,
1269
- showSelectedValuesFirst = _this$props10.showSelectedValuesFirst;
1423
+ showSelectedValuesFirst = _this$props10.showSelectedValuesFirst,
1424
+ isLoadingOptions = _this$props10.isLoadingOptions,
1425
+ onScrollBottom = _this$props10.onScrollBottom;
1270
1426
 
1271
1427
  var currentValues = _this.getCurrentValues();
1272
1428
 
@@ -1274,11 +1430,12 @@ var SelectBase_SelectBase = /*#__PURE__*/function (_Component) {
1274
1430
  _this.firstSelectedOptionIndex = undefined;
1275
1431
  _this.selectedOptionCount = 0;
1276
1432
  _this.activeValue = undefined;
1433
+ _this.availableMatchOptions = [];
1277
1434
  var foundExactMatch;
1278
1435
  var childrenTopCount = 0;
1279
1436
  var hasDivider = false; // used to avoid overwriting the selected item ref in multiple mode
1280
1437
 
1281
- var foundSelected;
1438
+ var foundSelectedAndEnabled;
1282
1439
  var topValues = showSelectedValuesFirst === 'immediately' ? _this.getTopValues() : topValuesState;
1283
1440
  var children = external_react_["Children"].toArray(_this.props.children).reduce(function (acc, item, i) {
1284
1441
  // ignore Headings and Dividers
@@ -1292,19 +1449,39 @@ var SelectBase_SelectBase = /*#__PURE__*/function (_Component) {
1292
1449
  foundExactMatch = true;
1293
1450
  }
1294
1451
 
1295
- var selected = currentValues && currentValues.indexOf(item.props.value) >= 0; // Format the Menu.Item
1452
+ var selected = currentValues && currentValues.indexOf(item.props.value) >= 0;
1453
+ var isFirstSelectedAndEnabled = !!selected && !item.props.disabled && !foundSelectedAndEnabled;
1454
+ var useMatchOptions = allowKeyMatching && !multiple && !filter && !isLoadingOptions && !onScrollBottom;
1455
+ var itemKey = "".concat(item.props.label, "-").concat(item.props.value);
1456
+ var filterIndex = -1;
1457
+
1458
+ if (useMatchOptions && !item.props.disabled && !item.props.hidden) {
1459
+ _this.availableMatchOptions.push({
1460
+ itemKey: itemKey,
1461
+ label: item.props.label,
1462
+ value: item.props.value
1463
+ });
1464
+
1465
+ filterIndex = _this.availableMatchOptions.length - 1;
1466
+ } // Format the Menu.Item
1467
+
1296
1468
 
1297
1469
  var clonedItem = /*#__PURE__*/Object(external_react_["cloneElement"])(item, {
1298
1470
  key: item.key || i,
1299
1471
  onClick: _this.handleMenuOptionClick,
1472
+ onKeyDown: useMatchOptions ? function (e) {
1473
+ return _this.handleMenuOptionKeyDown(e, filterIndex);
1474
+ } : undefined,
1300
1475
  selected: selected,
1301
1476
  multiple: multiple,
1302
1477
  role: 'option',
1303
- ref: selected && !foundSelected ? _this.handleSelectedItemMount : undefined
1478
+ ref: function ref(element) {
1479
+ return _this.handleOptionMount(element, itemKey, isFirstSelectedAndEnabled);
1480
+ }
1304
1481
  });
1305
1482
 
1306
- if (selected) {
1307
- foundSelected = true;
1483
+ if (isFirstSelectedAndEnabled) {
1484
+ foundSelectedAndEnabled = true;
1308
1485
  }
1309
1486
 
1310
1487
  if (topValues && topValues.indexOf(item.props.value) >= 0) {
@@ -1473,6 +1650,11 @@ var SelectBase_SelectBase = /*#__PURE__*/function (_Component) {
1473
1650
  _this.availableOptionCount = 0;
1474
1651
  _this.firstSelectedOptionIndex = undefined;
1475
1652
  _this.selectedOptionCount = 0;
1653
+ _this.matchCharacter = null;
1654
+ _this.matchTimeout = null;
1655
+ _this.currentMatchOptions = [];
1656
+ _this.availableMatchOptions = [];
1657
+ _this.optionRefsByKey = {};
1476
1658
 
1477
1659
  if (false) {}
1478
1660
 
@@ -1614,7 +1796,6 @@ var SelectBase_SelectBase = /*#__PURE__*/function (_Component) {
1614
1796
  "data-test": "filter"
1615
1797
  }, /*#__PURE__*/external_react_default.a.createElement(Text_default.a, {
1616
1798
  value: filterKeyword,
1617
- appearance: "search",
1618
1799
  autoCapitalize: "off",
1619
1800
  autoComplete: "off",
1620
1801
  autoCorrect: "off",
@@ -1630,7 +1811,14 @@ var SelectBase_SelectBase = /*#__PURE__*/function (_Component) {
1630
1811
  "aria-activedescendant": this.activeItemId,
1631
1812
  "aria-controls": this.menuId,
1632
1813
  inputRef: inputRef,
1633
- inputId: inputId
1814
+ inputId: inputId,
1815
+ canClear: true,
1816
+ startAdornment: /*#__PURE__*/external_react_default.a.createElement(StyledSearchIconWrapper, null, /*#__PURE__*/external_react_default.a.createElement(Search["a" /* default */], {
1817
+ role: "presentation",
1818
+ enterpriseSize: "16px",
1819
+ inline: false,
1820
+ screenReaderText: Object(i18n_["_"])('Search')
1821
+ }))
1634
1822
  })), multiple && hasChildren && selectControls);
1635
1823
  }
1636
1824
  }, {
@@ -1669,7 +1857,12 @@ var SelectBase_SelectBase = /*#__PURE__*/function (_Component) {
1669
1857
  });
1670
1858
 
1671
1859
  if (matchedItem) {
1672
- acc.push(matchedItem.props.children || matchedItem.props.label); // if not in multiple mode, add the icon
1860
+ acc.push(matchedItem.props.children || matchedItem.props.label);
1861
+
1862
+ if (!matchedItem.props.disabled) {
1863
+ isAnyValueSelected = true;
1864
+ } // if not in multiple mode, add the icon
1865
+
1673
1866
 
1674
1867
  if (!multiple && currentValues.length === 1) {
1675
1868
  icon = matchedItem.props.icon;
@@ -1688,7 +1881,6 @@ var SelectBase_SelectBase = /*#__PURE__*/function (_Component) {
1688
1881
  label = valuesLabel; // only apply prefix / suffix if the label is not empty
1689
1882
 
1690
1883
  if (label.length > 0) {
1691
- isAnyValueSelected = true;
1692
1884
  label = this.wrapLabel({
1693
1885
  prefixLabel: prefixLabel,
1694
1886
  label: label,
@@ -1783,7 +1975,8 @@ var SelectBase_SelectBase = /*#__PURE__*/function (_Component) {
1783
1975
  isLoading: _this2.props.isLoadingOptions,
1784
1976
  id: _this2.menuId
1785
1977
  }, Object(external_lodash_["pick"])(_this2.props, 'noOptionsMessage', 'footerMessage', 'animateLoading', 'loadingMessage'), {
1786
- style: _objectSpread(_objectSpread({}, internalMenuStyle), _this2.props.menuStyle)
1978
+ style: _objectSpread(_objectSpread({}, internalMenuStyle), _this2.props.menuStyle),
1979
+ tabIndex: currentValues.length > 0 && !isAnyValueSelected ? 0 : undefined
1787
1980
  }), finalChildren);
1788
1981
  };
1789
1982
 
@@ -1801,7 +1994,7 @@ var SelectBase_SelectBase = /*#__PURE__*/function (_Component) {
1801
1994
  _this2.dropdown = c;
1802
1995
  },
1803
1996
  retainFocus: false,
1804
- takeFocus: !isAnyValueSelected || !!filterEnabled
1997
+ takeFocus: currentValues.length === 0 || currentValues.length > 0 && !isAnyValueSelected || !!filterEnabled
1805
1998
  }, createMenu);
1806
1999
  }
1807
2000
  }]);
@@ -1824,6 +2017,56 @@ _defineProperty(SelectBase_SelectBase, "invalidLinkAppearanceProps", ['append',
1824
2017
  /* harmony default export */ var Select_SelectBase = __webpack_exports__["c"] = (SelectBase_SelectBase);
1825
2018
 
1826
2019
 
2020
+ /***/ }),
2021
+
2022
+ /***/ 44:
2023
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2024
+
2025
+ "use strict";
2026
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Search; });
2027
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);
2028
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2029
+ /* harmony import */ var _splunk_react_icons_Search__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51);
2030
+ /* harmony import */ var _splunk_react_icons_Search__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_splunk_react_icons_Search__WEBPACK_IMPORTED_MODULE_1__);
2031
+ /* harmony import */ var _ThemedIcon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7);
2032
+ /* harmony import */ var _SVG__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6);
2033
+ function _extends() { _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 _extends.apply(this, arguments); }
2034
+
2035
+
2036
+
2037
+
2038
+
2039
+
2040
+ function Prisma24(_ref) {
2041
+ var otherProps = _extends({}, _ref);
2042
+
2043
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_SVG__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"], _extends({
2044
+ viewBox: "0 0 24 24"
2045
+ }, otherProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
2046
+ d: "M10.5,3.0015 C14.6421,3.0015 18,6.3593 18,10.5015 C18,12.2112 17.4279,13.7873 16.4647,15.0489 L20.7077,19.292 C21.0983,19.6825 21.0983,20.3156 20.7077,20.7062 C20.3172,21.0967 19.6841,21.0967 19.2935,20.7062 L15.0509,16.4635 C13.7888,17.4283 12.2113,18.0015 10.5,18.0015 C6.3579,18.0015 3,14.6436 3,10.5015 C3,6.3593 6.3579,3.0015 10.5,3.0015 Z M10.5,5.0015 C7.4624,5.0015 5,7.4639 5,10.5015 C5,13.539 7.4624,16.0015 10.5,16.0015 C13.5376,16.0015 16,13.539 16,10.5015 C16,7.4639 13.5376,5.0015 10.5,5.0015 Z",
2047
+ fill: "currentColor"
2048
+ }));
2049
+ }
2050
+
2051
+ function Prisma16(_ref2) {
2052
+ var otherProps = _extends({}, _ref2);
2053
+
2054
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_SVG__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"], _extends({
2055
+ viewBox: "0 0 16 16"
2056
+ }, otherProps), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("path", {
2057
+ d: "M6.85277,2.0015 C9.53288,2.0015 11.7055,4.1741 11.7055,6.8542 C11.7055,7.8463 11.4079,8.7688 10.897,9.5373 L10.9245,9.5098 L14.0018,12.5871 L12.5876,14.0014 L9.51025,10.924 L9.53587,10.8984 C8.76733,11.4093 7.84481,11.707 6.85277,11.707 C4.17266,11.707 2,9.5343 2,6.8542 C2,4.1741 4.17266,2.0015 6.85277,2.0015 Z M6.85277,4.0015 C5.27723,4.0015 4,5.2787 4,6.8542 C4,8.4298 5.27723,9.707 6.85277,9.707 C8.42831,9.707 9.70554,8.4298 9.70554,6.8542 C9.70554,5.2787 8.42831,4.0015 6.85277,4.0015 Z",
2058
+ fill: "currentColor"
2059
+ }));
2060
+ }
2061
+
2062
+ function Search(props) {
2063
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ThemedIcon__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"], _extends({
2064
+ Enterprise: _splunk_react_icons_Search__WEBPACK_IMPORTED_MODULE_1___default.a,
2065
+ Prisma16: Prisma16,
2066
+ Prisma24: Prisma24
2067
+ }, props));
2068
+ }
2069
+
1827
2070
  /***/ }),
1828
2071
 
1829
2072
  /***/ 5:
@@ -1833,6 +2076,13 @@ module.exports = require("@splunk/ui-utils/i18n");
1833
2076
 
1834
2077
  /***/ }),
1835
2078
 
2079
+ /***/ 51:
2080
+ /***/ (function(module, exports) {
2081
+
2082
+ module.exports = require("@splunk/react-icons/Search");
2083
+
2084
+ /***/ }),
2085
+
1836
2086
  /***/ 6:
1837
2087
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
1838
2088
 
package/SidePanel.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 = 164);
85
+ /******/ return __webpack_require__(__webpack_require__.s = 172);
86
86
  /******/ })
87
87
  /************************************************************************/
88
88
  /******/ ({
@@ -101,7 +101,7 @@ module.exports = require("prop-types");
101
101
 
102
102
  /***/ }),
103
103
 
104
- /***/ 164:
104
+ /***/ 172:
105
105
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
106
106
 
107
107
  "use strict";
@@ -123,7 +123,7 @@ var external_prop_types_default = /*#__PURE__*/__webpack_require__.n(external_pr
123
123
  var external_lodash_ = __webpack_require__(4);
124
124
 
125
125
  // EXTERNAL MODULE: external "@splunk/react-ui/ModalLayer"
126
- var ModalLayer_ = __webpack_require__(68);
126
+ var ModalLayer_ = __webpack_require__(77);
127
127
  var ModalLayer_default = /*#__PURE__*/__webpack_require__.n(ModalLayer_);
128
128
 
129
129
  // EXTERNAL MODULE: external "styled-components"
@@ -131,7 +131,7 @@ var external_styled_components_ = __webpack_require__(3);
131
131
  var external_styled_components_default = /*#__PURE__*/__webpack_require__.n(external_styled_components_);
132
132
 
133
133
  // EXTERNAL MODULE: external "@splunk/react-ui/TransitionOpen"
134
- var TransitionOpen_ = __webpack_require__(47);
134
+ var TransitionOpen_ = __webpack_require__(52);
135
135
  var TransitionOpen_default = /*#__PURE__*/__webpack_require__.n(TransitionOpen_);
136
136
 
137
137
  // EXTERNAL MODULE: external "@splunk/themes"
@@ -365,14 +365,14 @@ module.exports = require("lodash");
365
365
 
366
366
  /***/ }),
367
367
 
368
- /***/ 47:
368
+ /***/ 52:
369
369
  /***/ (function(module, exports) {
370
370
 
371
371
  module.exports = require("@splunk/react-ui/TransitionOpen");
372
372
 
373
373
  /***/ }),
374
374
 
375
- /***/ 68:
375
+ /***/ 77:
376
376
  /***/ (function(module, exports) {
377
377
 
378
378
  module.exports = require("@splunk/react-ui/ModalLayer");