@sproutsocial/racine 12.19.0 → 12.21.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 (626) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +46 -44
  3. package/__flow__/Avatar/index.js +26 -26
  4. package/__flow__/Avatar/index.stories.js +8 -8
  5. package/__flow__/Avatar/index.test.js +13 -13
  6. package/__flow__/Badge/constants.js +14 -14
  7. package/__flow__/Badge/index.js +18 -18
  8. package/__flow__/Badge/index.stories.js +8 -8
  9. package/__flow__/Badge/index.test.js +43 -43
  10. package/__flow__/Badge/styles.js +13 -9
  11. package/__flow__/Banner/index.js +21 -21
  12. package/__flow__/Banner/index.stories.js +56 -68
  13. package/__flow__/Banner/index.test.js +32 -34
  14. package/__flow__/Banner/styles.js +4 -4
  15. package/__flow__/Box/index.js +4 -4
  16. package/__flow__/Box/index.stories.js +58 -51
  17. package/__flow__/Box/index.test.js +7 -7
  18. package/__flow__/Box/styles.js +6 -6
  19. package/__flow__/Breadcrumb/index.js +9 -13
  20. package/__flow__/Breadcrumb/index.stories.js +14 -14
  21. package/__flow__/Breadcrumb/index.test.js +20 -20
  22. package/__flow__/Breadcrumb/styles.js +5 -5
  23. package/__flow__/Button/index.js +23 -23
  24. package/__flow__/Button/index.stories.js +34 -34
  25. package/__flow__/Button/styles.js +11 -11
  26. package/__flow__/Card/index.js +7 -7
  27. package/__flow__/Card/index.stories.js +14 -14
  28. package/__flow__/Card/styles.js +7 -7
  29. package/__flow__/CharacterCounter/index.js +7 -7
  30. package/__flow__/CharacterCounter/index.stories.js +25 -26
  31. package/__flow__/CharacterCounter/index.test.js +11 -11
  32. package/__flow__/CharacterCounter/styles.js +3 -3
  33. package/__flow__/ChartLegend/index.js +7 -7
  34. package/__flow__/ChartLegend/index.stories.js +22 -22
  35. package/__flow__/ChartLegend/index.test.js +27 -27
  36. package/__flow__/ChartLegend/styles.js +7 -7
  37. package/__flow__/Checkbox/index.js +10 -10
  38. package/__flow__/Checkbox/index.stories.js +24 -24
  39. package/__flow__/Checkbox/index.test.js +25 -25
  40. package/__flow__/Checkbox/styles.js +27 -28
  41. package/__flow__/Collapsible/index.js +15 -15
  42. package/__flow__/Collapsible/index.stories.js +13 -13
  43. package/__flow__/Collapsible/index.test.js +27 -27
  44. package/__flow__/Collapsible/styles.js +5 -5
  45. package/__flow__/DatePicker/DateRangePicker.js +5 -8
  46. package/__flow__/DatePicker/DateRangePicker.stories.js +19 -19
  47. package/__flow__/DatePicker/DateRangePicker.test.js +21 -21
  48. package/__flow__/DatePicker/SingleDatePicker.js +6 -9
  49. package/__flow__/DatePicker/SingleDatePicker.stories.js +10 -10
  50. package/__flow__/DatePicker/SingleDatePicker.test.js +21 -23
  51. package/__flow__/DatePicker/StatefulDateRangePicker.js +6 -6
  52. package/__flow__/DatePicker/StatefulSingleDatePicker.js +3 -3
  53. package/__flow__/DatePicker/common.js +13 -13
  54. package/__flow__/DatePicker/index.js +3 -3
  55. package/__flow__/DatePicker/styles.js +42 -42
  56. package/__flow__/Drawer/SlideTransition.js +10 -10
  57. package/__flow__/Drawer/index.js +29 -29
  58. package/__flow__/Drawer/index.stories.js +58 -141
  59. package/__flow__/Drawer/index.test.js +28 -28
  60. package/__flow__/Drawer/styles.js +4 -4
  61. package/__flow__/EmptyState/index.js +5 -5
  62. package/__flow__/EmptyState/index.stories.js +10 -10
  63. package/__flow__/EmptyState/index.test.js +27 -27
  64. package/__flow__/EnumIllustrationNames.js +1 -1
  65. package/__flow__/Fieldset/index.js +14 -14
  66. package/__flow__/Fieldset/index.stories.js +19 -20
  67. package/__flow__/Fieldset/index.test.js +14 -14
  68. package/__flow__/Fieldset/styles.js +5 -5
  69. package/__flow__/FormField/index.js +14 -14
  70. package/__flow__/FormField/index.stories.js +31 -21
  71. package/__flow__/FormField/index.test.js +19 -19
  72. package/__flow__/Icon/deprecatedIcons.js +36 -36
  73. package/__flow__/Icon/index.js +17 -17
  74. package/__flow__/Icon/index.stories.js +62 -29
  75. package/__flow__/Icon/index.test.js +15 -15
  76. package/__flow__/Icon/styles.js +12 -23
  77. package/__flow__/IllustrationViewBoxes.js +1 -1
  78. package/__flow__/Image/index.js +6 -7
  79. package/__flow__/Image/index.stories.js +5 -5
  80. package/__flow__/Image/index.test.js +24 -24
  81. package/__flow__/Image/styles.js +6 -5
  82. package/__flow__/Indicator/index.js +7 -7
  83. package/__flow__/Indicator/index.stories.js +8 -14
  84. package/__flow__/Indicator/index.test.js +6 -6
  85. package/__flow__/Indicator/styles.js +6 -6
  86. package/__flow__/Input/index.js +37 -37
  87. package/__flow__/Input/index.stories.js +96 -189
  88. package/__flow__/Input/index.test.js +117 -117
  89. package/__flow__/Input/styles.js +13 -13
  90. package/__flow__/KeyboardKey/index.js +5 -5
  91. package/__flow__/KeyboardKey/index.stories.js +9 -12
  92. package/__flow__/KeyboardKey/index.test.js +7 -7
  93. package/__flow__/KeyboardKey/styles.js +4 -4
  94. package/__flow__/Label/index.js +6 -6
  95. package/__flow__/Label/index.stories.js +5 -7
  96. package/__flow__/Label/index.test.js +8 -8
  97. package/__flow__/Link/constants.js +4 -4
  98. package/__flow__/Link/index.js +11 -11
  99. package/__flow__/Link/index.stories.js +61 -102
  100. package/__flow__/Link/index.test.js +40 -40
  101. package/__flow__/Link/styles.js +6 -6
  102. package/__flow__/Listbox/index.js +16 -16
  103. package/__flow__/Listbox/index.stories.js +35 -35
  104. package/__flow__/Listbox/index.test.js +63 -65
  105. package/__flow__/Loader/index.js +12 -12
  106. package/__flow__/Loader/index.stories.js +10 -10
  107. package/__flow__/Loader/index.test.js +17 -17
  108. package/__flow__/Loader/styles.js +9 -13
  109. package/__flow__/LoaderButton/index.js +36 -18
  110. package/__flow__/LoaderButton/index.stories.js +35 -7
  111. package/__flow__/LoaderButton/index.test.js +15 -15
  112. package/__flow__/Menu/__snapshots__/index.test.js.snap +0 -9
  113. package/__flow__/Menu/constants.js +8 -8
  114. package/__flow__/Menu/descendants.js +89 -80
  115. package/__flow__/Menu/hooks.js +22 -22
  116. package/__flow__/Menu/index.flow.js +13 -13
  117. package/__flow__/Menu/index.js +56 -60
  118. package/__flow__/Menu/index.stories.js +19 -19
  119. package/__flow__/Menu/index.test.js +22 -22
  120. package/__flow__/Menu/names.js +4945 -4945
  121. package/__flow__/Menu/styles.js +5 -5
  122. package/__flow__/Message/index.js +33 -33
  123. package/__flow__/Message/index.stories.js +18 -13
  124. package/__flow__/Message/index.test.js +6 -6
  125. package/__flow__/Message/styles.js +15 -15
  126. package/__flow__/Modal/index.js +19 -19
  127. package/__flow__/Modal/index.stories.js +43 -43
  128. package/__flow__/Modal/index.test.js +29 -29
  129. package/__flow__/Modal/styles.js +27 -32
  130. package/__flow__/Numeral/index.js +22 -22
  131. package/__flow__/Numeral/index.stories.js +74 -74
  132. package/__flow__/Numeral/styles.js +3 -3
  133. package/__flow__/Numeral/tests/A11y.test.js +7 -7
  134. package/__flow__/Numeral/tests/abbreviate.test.js +40 -40
  135. package/__flow__/Numeral/tests/currency.test.js +24 -24
  136. package/__flow__/Numeral/tests/defaults.test.js +20 -20
  137. package/__flow__/Numeral/tests/invalid.test.js +9 -9
  138. package/__flow__/Numeral/tests/locale.test.js +38 -38
  139. package/__flow__/Numeral/tests/precision.test.js +76 -76
  140. package/__flow__/Numeral/tests/testNumeral.js +11 -11
  141. package/__flow__/Numeral/tests/zero.test.js +8 -8
  142. package/__flow__/OverflowList/index.flow.js +2 -2
  143. package/__flow__/OverflowList/index.js +12 -12
  144. package/__flow__/OverflowList/index.stories.js +10 -10
  145. package/__flow__/OverflowList/index.test.js +25 -25
  146. package/__flow__/OverflowList/styles.js +5 -5
  147. package/__flow__/PartnerLogo/TypePartnerNames.js +37 -37
  148. package/__flow__/PartnerLogo/index.js +21 -27
  149. package/__flow__/PartnerLogo/index.stories.js +52 -52
  150. package/__flow__/PartnerLogo/styles.js +12 -24
  151. package/__flow__/Popout/index.js +66 -67
  152. package/__flow__/Popout/index.stories.js +101 -82
  153. package/__flow__/Popout/index.test.js +43 -43
  154. package/__flow__/Popout/styles.js +4 -5
  155. package/__flow__/Portal/index.js +9 -9
  156. package/__flow__/Portal/index.stories.js +12 -12
  157. package/__flow__/Radio/index.js +4 -4
  158. package/__flow__/Radio/index.stories.js +11 -11
  159. package/__flow__/Radio/index.test.js +12 -12
  160. package/__flow__/Radio/styles.js +15 -16
  161. package/__flow__/SegmentedControl/index.js +7 -7
  162. package/__flow__/SegmentedControl/index.stories.js +7 -7
  163. package/__flow__/SegmentedControl/index.test.js +29 -29
  164. package/__flow__/SegmentedControl/styles.js +10 -9
  165. package/__flow__/Select/index.js +10 -10
  166. package/__flow__/Select/index.stories.js +33 -69
  167. package/__flow__/Select/index.test.js +14 -14
  168. package/__flow__/Select/styles.js +16 -16
  169. package/__flow__/Skeleton/index.js +4 -4
  170. package/__flow__/Skeleton/index.stories.js +5 -5
  171. package/__flow__/SpotIllustration/illustrationNames.js +118 -117
  172. package/__flow__/SpotIllustration/index.js +15 -11
  173. package/__flow__/SpotIllustration/index.stories.js +18 -18
  174. package/__flow__/SpotIllustration/spotIllustrations/molecule.svg +14 -0
  175. package/__flow__/Stack/index.js +43 -33
  176. package/__flow__/Stack/index.stories.js +41 -91
  177. package/__flow__/Stack/index.test.js +16 -7
  178. package/__flow__/Switch/index.js +8 -8
  179. package/__flow__/Switch/index.stories.js +5 -5
  180. package/__flow__/Switch/index.test.js +25 -29
  181. package/__flow__/Switch/styles.js +13 -9
  182. package/__flow__/Table/index.js +17 -17
  183. package/__flow__/Table/index.stories.js +99 -99
  184. package/__flow__/Table/index.test.js +32 -32
  185. package/__flow__/Table/styles.js +4 -4
  186. package/__flow__/TableCell/index.js +8 -7
  187. package/__flow__/TableCell/index.stories.js +20 -23
  188. package/__flow__/TableCell/index.test.js +11 -11
  189. package/__flow__/TableCell/styles.js +4 -5
  190. package/__flow__/TableHeaderCell/index.js +14 -14
  191. package/__flow__/TableHeaderCell/index.stories.js +35 -30
  192. package/__flow__/TableHeaderCell/index.test.js +11 -11
  193. package/__flow__/TableHeaderCell/styles.js +4 -4
  194. package/__flow__/TableRowAccordion/index.js +8 -8
  195. package/__flow__/TableRowAccordion/index.stories.js +36 -36
  196. package/__flow__/TableRowAccordion/index.test.js +28 -30
  197. package/__flow__/TableRowAccordion/styles.js +11 -7
  198. package/__flow__/Tabs/index.js +11 -11
  199. package/__flow__/Tabs/index.stories.js +28 -54
  200. package/__flow__/Tabs/index.test.js +54 -54
  201. package/__flow__/Tabs/styles.js +6 -7
  202. package/__flow__/Text/index.js +14 -14
  203. package/__flow__/Text/index.stories.js +84 -86
  204. package/__flow__/Text/index.test.js +29 -33
  205. package/__flow__/Text/styles.js +4 -4
  206. package/__flow__/Textarea/index.js +5 -5
  207. package/__flow__/Textarea/index.stories.js +54 -93
  208. package/__flow__/Textarea/index.test.js +30 -30
  209. package/__flow__/Textarea/styles.js +6 -6
  210. package/__flow__/ThemeProvider/index.js +4 -4
  211. package/__flow__/Toast/index.js +23 -23
  212. package/__flow__/Toast/index.stories.js +21 -21
  213. package/__flow__/Toast/styles.js +6 -6
  214. package/__flow__/ToggleHint/index.js +8 -8
  215. package/__flow__/ToggleHint/index.test.js +8 -8
  216. package/__flow__/ToggleHint/styles.js +8 -8
  217. package/__flow__/Token/index.js +10 -10
  218. package/__flow__/Token/index.stories.js +49 -54
  219. package/__flow__/Token/index.test.js +28 -28
  220. package/__flow__/Token/styles.js +11 -11
  221. package/__flow__/TokenInput/index.flow.js +1 -1
  222. package/__flow__/TokenInput/index.js +39 -39
  223. package/__flow__/TokenInput/index.stories.js +121 -128
  224. package/__flow__/TokenInput/styles.js +5 -5
  225. package/__flow__/TokenInput/tests/default/clicking.test.js +13 -13
  226. package/__flow__/TokenInput/tests/default/deleting.test.js +39 -39
  227. package/__flow__/TokenInput/tests/default/focusing.test.js +18 -18
  228. package/__flow__/TokenInput/tests/default/inputting.test.js +23 -23
  229. package/__flow__/TokenInput/tests/default/pasting.test.js +52 -52
  230. package/__flow__/TokenInput/tests/default/rendering.test.js +54 -54
  231. package/__flow__/TokenInput/util.js +4 -4
  232. package/__flow__/Tooltip/index.js +21 -21
  233. package/__flow__/Tooltip/index.stories.js +18 -18
  234. package/__flow__/Tooltip/index.test.js +54 -54
  235. package/__flow__/Tooltip/styles.js +4 -5
  236. package/__flow__/VisuallyHidden/index.js +3 -3
  237. package/__flow__/building-stories.stories.mdx +121 -0
  238. package/__flow__/dataviz/dataviz.stories.js +4 -4
  239. package/__flow__/dataviz/index.js +3 -3
  240. package/__flow__/index.js +72 -72
  241. package/__flow__/overview.stories.js +60 -0
  242. package/__flow__/setupTests.js +5 -5
  243. package/__flow__/systemProps/background.js +3 -3
  244. package/__flow__/systemProps/border.js +3 -3
  245. package/__flow__/systemProps/color.js +3 -3
  246. package/__flow__/systemProps/custom.js +3 -3
  247. package/__flow__/systemProps/flexbox.js +3 -3
  248. package/__flow__/systemProps/grid.js +3 -3
  249. package/__flow__/systemProps/index.js +14 -14
  250. package/__flow__/systemProps/layout.js +3 -3
  251. package/__flow__/systemProps/position.js +3 -3
  252. package/__flow__/systemProps/shadow.js +3 -3
  253. package/__flow__/systemProps/space.js +3 -7
  254. package/__flow__/systemProps/systemProps.js +14 -14
  255. package/__flow__/systemProps/tests/background.test.js +17 -17
  256. package/__flow__/systemProps/tests/border.test.js +61 -61
  257. package/__flow__/systemProps/tests/color.test.js +15 -15
  258. package/__flow__/systemProps/tests/custom.test.js +12 -12
  259. package/__flow__/systemProps/tests/flexbox.test.js +33 -33
  260. package/__flow__/systemProps/tests/grid.test.js +31 -31
  261. package/__flow__/systemProps/tests/layout.test.js +29 -29
  262. package/__flow__/systemProps/tests/position.test.js +19 -19
  263. package/__flow__/systemProps/tests/shadow.test.js +11 -11
  264. package/__flow__/systemProps/tests/space.test.js +11 -11
  265. package/__flow__/systemProps/tests/types.flow.js +18 -18
  266. package/__flow__/systemProps/tests/typography.test.js +21 -21
  267. package/__flow__/systemProps/tests/variant.test.js +9 -9
  268. package/__flow__/systemProps/types.flow.js +2 -2
  269. package/__flow__/systemProps/typography.js +4 -4
  270. package/__flow__/systemProps/variant.js +5 -5
  271. package/__flow__/themes/dark/dataviz-palette.js +21 -21
  272. package/__flow__/themes/dark/decorative-palettes.js +1 -1
  273. package/__flow__/themes/dark/theme.js +18 -18
  274. package/__flow__/themes/extendedThemes/README.md +1 -1
  275. package/__flow__/themes/extendedThemes/sproutTheme/dark/theme.js +16 -4
  276. package/__flow__/themes/extendedThemes/sproutTheme/index.js +2 -2
  277. package/__flow__/themes/extendedThemes/sproutTheme/light/theme.js +16 -4
  278. package/__flow__/themes/light/dataviz-palette.js +21 -21
  279. package/__flow__/themes/light/decorative-palettes.js +1 -1
  280. package/__flow__/themes/light/literal-colors.js +133 -133
  281. package/__flow__/themes/light/theme.js +53 -53
  282. package/__flow__/types/system-props.flow.js +5 -5
  283. package/__flow__/types/theme.colors.flow.js +2 -2
  284. package/__flow__/types/theme.flow.js +5 -5
  285. package/__flow__/utils/a11yTest.js +1 -1
  286. package/__flow__/utils/chartColors.js +1 -1
  287. package/__flow__/utils/constants.js +1 -1
  288. package/__flow__/utils/dataQaLabelQueries.js +2 -2
  289. package/__flow__/utils/hooks.js +17 -17
  290. package/__flow__/utils/index.js +4 -4
  291. package/__flow__/utils/innerText.js +9 -9
  292. package/__flow__/utils/mixins.js +6 -6
  293. package/__flow__/utils/react-testing-library.js +6 -6
  294. package/__flow__/utils/responsiveProps/index.js +3 -3
  295. package/__flow__/utils/responsiveProps/index.test.js +8 -8
  296. package/__flow__/utils/system-props.js +3 -3
  297. package/__flow__/utils/useInteractiveColor.js +5 -5
  298. package/__flow__/writing-good-stories.stories.mdx +3 -0
  299. package/bin/racine-codemod.js +12 -12
  300. package/codemods/__tests__/migrate-2.x-to-3.x.test.js +2 -2
  301. package/codemods/migrate-2.x-to-3.x.js +29 -30
  302. package/commonjs/Avatar/index.js +33 -53
  303. package/commonjs/Badge/constants.js +18 -15
  304. package/commonjs/Badge/index.js +14 -28
  305. package/commonjs/Badge/styles.js +3 -9
  306. package/commonjs/Banner/index.js +16 -37
  307. package/commonjs/Banner/styles.js +0 -5
  308. package/commonjs/Box/index.js +2 -9
  309. package/commonjs/Box/styles.js +0 -4
  310. package/commonjs/Breadcrumb/index.js +13 -29
  311. package/commonjs/Breadcrumb/styles.js +1 -4
  312. package/commonjs/Button/index.js +29 -43
  313. package/commonjs/Button/styles.js +6 -15
  314. package/commonjs/Card/index.js +16 -26
  315. package/commonjs/Card/styles.js +1 -5
  316. package/commonjs/CharacterCounter/index.js +6 -23
  317. package/commonjs/CharacterCounter/styles.js +0 -5
  318. package/commonjs/ChartLegend/index.js +5 -20
  319. package/commonjs/ChartLegend/styles.js +2 -11
  320. package/commonjs/Checkbox/index.js +30 -53
  321. package/commonjs/Checkbox/styles.js +14 -35
  322. package/commonjs/Collapsible/index.js +31 -54
  323. package/commonjs/Collapsible/styles.js +3 -6
  324. package/commonjs/DatePicker/DateRangePicker.js +4 -17
  325. package/commonjs/DatePicker/SingleDatePicker.js +3 -17
  326. package/commonjs/DatePicker/StatefulDateRangePicker.js +16 -31
  327. package/commonjs/DatePicker/StatefulSingleDatePicker.js +7 -20
  328. package/commonjs/DatePicker/common.js +8 -22
  329. package/commonjs/DatePicker/index.js +0 -5
  330. package/commonjs/DatePicker/styles.js +8 -25
  331. package/commonjs/Drawer/SlideTransition.js +8 -18
  332. package/commonjs/Drawer/index.js +51 -90
  333. package/commonjs/Drawer/styles.js +0 -8
  334. package/commonjs/EmptyState/index.js +8 -20
  335. package/commonjs/Fieldset/index.js +15 -32
  336. package/commonjs/Fieldset/styles.js +2 -7
  337. package/commonjs/FormField/index.js +19 -36
  338. package/commonjs/Icon/deprecatedIcons.js +36 -36
  339. package/commonjs/Icon/index.js +19 -37
  340. package/commonjs/Icon/styles.js +8 -19
  341. package/commonjs/IllustrationViewBoxes.js +1 -0
  342. package/commonjs/Image/index.js +13 -41
  343. package/commonjs/Image/styles.js +1 -7
  344. package/commonjs/Indicator/index.js +8 -26
  345. package/commonjs/Indicator/styles.js +1 -7
  346. package/commonjs/Input/index.js +80 -119
  347. package/commonjs/Input/styles.js +9 -19
  348. package/commonjs/KeyboardKey/index.js +3 -20
  349. package/commonjs/KeyboardKey/styles.js +0 -4
  350. package/commonjs/Label/index.js +7 -27
  351. package/commonjs/Link/constants.js +3 -4
  352. package/commonjs/Link/index.js +16 -28
  353. package/commonjs/Link/styles.js +1 -8
  354. package/commonjs/Listbox/index.js +15 -36
  355. package/commonjs/Loader/index.js +15 -31
  356. package/commonjs/Loader/styles.js +2 -13
  357. package/commonjs/LoaderButton/index.js +37 -39
  358. package/commonjs/Menu/constants.js +9 -8
  359. package/commonjs/Menu/descendants.js +70 -105
  360. package/commonjs/Menu/hooks.js +23 -41
  361. package/commonjs/Menu/index.flow.js +0 -7
  362. package/commonjs/Menu/index.js +94 -164
  363. package/commonjs/Menu/names.js +1 -1
  364. package/commonjs/Menu/styles.js +0 -6
  365. package/commonjs/Message/index.js +37 -70
  366. package/commonjs/Message/styles.js +9 -24
  367. package/commonjs/Modal/index.js +31 -54
  368. package/commonjs/Modal/styles.js +17 -36
  369. package/commonjs/Numeral/index.js +39 -67
  370. package/commonjs/Numeral/styles.js +0 -3
  371. package/commonjs/Numeral/tests/testNumeral.js +13 -31
  372. package/commonjs/OverflowList/index.flow.js +0 -2
  373. package/commonjs/OverflowList/index.js +27 -41
  374. package/commonjs/OverflowList/styles.js +0 -7
  375. package/commonjs/PartnerLogo/index.js +22 -37
  376. package/commonjs/PartnerLogo/styles.js +7 -17
  377. package/commonjs/Popout/index.js +95 -127
  378. package/commonjs/Popout/styles.js +0 -5
  379. package/commonjs/Portal/index.js +8 -31
  380. package/commonjs/Radio/index.js +18 -42
  381. package/commonjs/Radio/styles.js +9 -21
  382. package/commonjs/SegmentedControl/index.js +17 -37
  383. package/commonjs/SegmentedControl/styles.js +2 -12
  384. package/commonjs/Select/index.js +24 -47
  385. package/commonjs/Select/styles.js +12 -24
  386. package/commonjs/Skeleton/index.js +0 -5
  387. package/commonjs/SpotIllustration/illustrationNames.js +1 -1
  388. package/commonjs/SpotIllustration/index.js +5 -11
  389. package/commonjs/Stack/index.js +27 -42
  390. package/commonjs/Switch/index.js +17 -42
  391. package/commonjs/Switch/styles.js +3 -11
  392. package/commonjs/Table/index.js +26 -50
  393. package/commonjs/Table/styles.js +0 -4
  394. package/commonjs/TableCell/index.js +12 -30
  395. package/commonjs/TableCell/styles.js +0 -5
  396. package/commonjs/TableHeaderCell/index.js +27 -56
  397. package/commonjs/TableHeaderCell/styles.js +0 -6
  398. package/commonjs/TableRowAccordion/index.js +12 -37
  399. package/commonjs/TableRowAccordion/styles.js +2 -9
  400. package/commonjs/Tabs/index.js +16 -66
  401. package/commonjs/Tabs/styles.js +2 -11
  402. package/commonjs/Text/index.js +12 -25
  403. package/commonjs/Text/styles.js +1 -6
  404. package/commonjs/Textarea/index.js +31 -55
  405. package/commonjs/Textarea/styles.js +2 -9
  406. package/commonjs/ThemeProvider/index.js +1 -10
  407. package/commonjs/Toast/index.js +19 -42
  408. package/commonjs/Toast/styles.js +1 -7
  409. package/commonjs/ToggleHint/index.js +15 -39
  410. package/commonjs/ToggleHint/styles.js +2 -9
  411. package/commonjs/Token/index.js +15 -29
  412. package/commonjs/Token/styles.js +5 -12
  413. package/commonjs/TokenInput/index.js +70 -122
  414. package/commonjs/TokenInput/styles.js +1 -7
  415. package/commonjs/TokenInput/util.js +2 -7
  416. package/commonjs/Tooltip/index.js +40 -63
  417. package/commonjs/Tooltip/styles.js +1 -5
  418. package/commonjs/VisuallyHidden/index.js +0 -4
  419. package/commonjs/dataviz/index.js +0 -4
  420. package/commonjs/index.js +0 -129
  421. package/commonjs/systemProps/background.js +0 -1
  422. package/commonjs/systemProps/border.js +0 -1
  423. package/commonjs/systemProps/color.js +0 -1
  424. package/commonjs/systemProps/custom.js +0 -1
  425. package/commonjs/systemProps/flexbox.js +0 -1
  426. package/commonjs/systemProps/grid.js +0 -1
  427. package/commonjs/systemProps/index.js +0 -28
  428. package/commonjs/systemProps/layout.js +0 -1
  429. package/commonjs/systemProps/position.js +0 -1
  430. package/commonjs/systemProps/shadow.js +0 -1
  431. package/commonjs/systemProps/space.js +1 -2
  432. package/commonjs/systemProps/systemProps.js +0 -13
  433. package/commonjs/systemProps/tests/types.flow.js +25 -22
  434. package/commonjs/systemProps/typography.js +0 -1
  435. package/commonjs/systemProps/variant.js +2 -3
  436. package/commonjs/themes/dark/dataviz-palette.js +20 -22
  437. package/commonjs/themes/dark/decorative-palettes.js +0 -2
  438. package/commonjs/themes/dark/theme.js +15 -29
  439. package/commonjs/themes/extendedThemes/sproutTheme/dark/theme.js +14 -9
  440. package/commonjs/themes/extendedThemes/sproutTheme/index.js +0 -5
  441. package/commonjs/themes/extendedThemes/sproutTheme/light/theme.js +14 -9
  442. package/commonjs/themes/light/dataviz-palette.js +20 -22
  443. package/commonjs/themes/light/decorative-palettes.js +0 -2
  444. package/commonjs/themes/light/literal-colors.js +132 -134
  445. package/commonjs/themes/light/theme.js +45 -61
  446. package/commonjs/types/system-props.flow.js +1 -1
  447. package/commonjs/types/theme.colors.flow.js +0 -2
  448. package/commonjs/types/theme.flow.js +0 -1
  449. package/commonjs/utils/a11yTest.js +3 -10
  450. package/commonjs/utils/chartColors.js +0 -1
  451. package/commonjs/utils/constants.js +1 -1
  452. package/commonjs/utils/dataQaLabelQueries.js +12 -21
  453. package/commonjs/utils/hooks.js +39 -70
  454. package/commonjs/utils/index.js +2 -9
  455. package/commonjs/utils/innerText.js +10 -14
  456. package/commonjs/utils/mixins.js +2 -7
  457. package/commonjs/utils/react-testing-library.js +4 -26
  458. package/commonjs/utils/responsiveProps/index.js +1 -11
  459. package/commonjs/utils/system-props.js +2 -5
  460. package/commonjs/utils/useInteractiveColor.js +6 -8
  461. package/dist/illustration.svg +1 -1
  462. package/dist/illustrationList.js +1 -1
  463. package/dist/themes/dark/theme.scss +2 -2
  464. package/dist/themes/extendedThemes/sproutTheme/dark/theme.scss +26 -2
  465. package/dist/themes/extendedThemes/sproutTheme/light/theme.scss +26 -2
  466. package/dist/themes/light/theme.scss +2 -2
  467. package/lib/Avatar/index.js +40 -47
  468. package/lib/Badge/constants.js +19 -15
  469. package/lib/Badge/index.js +18 -25
  470. package/lib/Badge/styles.js +8 -6
  471. package/lib/Banner/index.js +20 -32
  472. package/lib/Banner/styles.js +3 -2
  473. package/lib/Box/index.js +4 -5
  474. package/lib/Box/styles.js +3 -2
  475. package/lib/Breadcrumb/index.js +19 -27
  476. package/lib/Breadcrumb/styles.js +3 -2
  477. package/lib/Button/index.js +31 -38
  478. package/lib/Button/styles.js +14 -11
  479. package/lib/Card/index.js +18 -24
  480. package/lib/Card/styles.js +5 -4
  481. package/lib/CharacterCounter/index.js +8 -20
  482. package/lib/CharacterCounter/styles.js +3 -2
  483. package/lib/ChartLegend/index.js +9 -17
  484. package/lib/ChartLegend/styles.js +5 -4
  485. package/lib/Checkbox/index.js +32 -51
  486. package/lib/Checkbox/styles.js +21 -26
  487. package/lib/Collapsible/index.js +36 -51
  488. package/lib/Collapsible/styles.js +6 -5
  489. package/lib/DatePicker/DateRangePicker.js +8 -14
  490. package/lib/DatePicker/SingleDatePicker.js +7 -13
  491. package/lib/DatePicker/StatefulDateRangePicker.js +19 -26
  492. package/lib/DatePicker/StatefulSingleDatePicker.js +9 -15
  493. package/lib/DatePicker/common.js +14 -13
  494. package/lib/DatePicker/index.js +2 -2
  495. package/lib/DatePicker/styles.js +12 -22
  496. package/lib/Drawer/SlideTransition.js +11 -14
  497. package/lib/Drawer/index.js +64 -88
  498. package/lib/Drawer/styles.js +4 -3
  499. package/lib/EmptyState/index.js +11 -17
  500. package/lib/Fieldset/index.js +19 -29
  501. package/lib/Fieldset/styles.js +5 -4
  502. package/lib/FormField/index.js +27 -33
  503. package/lib/Icon/deprecatedIcons.js +36 -36
  504. package/lib/Icon/index.js +25 -34
  505. package/lib/Icon/styles.js +12 -16
  506. package/lib/IllustrationViewBoxes.js +1 -0
  507. package/lib/Image/index.js +15 -38
  508. package/lib/Image/styles.js +4 -4
  509. package/lib/Indicator/index.js +11 -23
  510. package/lib/Indicator/styles.js +5 -5
  511. package/lib/Input/index.js +87 -115
  512. package/lib/Input/styles.js +13 -15
  513. package/lib/KeyboardKey/index.js +6 -17
  514. package/lib/KeyboardKey/styles.js +3 -2
  515. package/lib/Label/index.js +10 -24
  516. package/lib/Link/constants.js +5 -4
  517. package/lib/Link/index.js +18 -25
  518. package/lib/Link/styles.js +6 -5
  519. package/lib/Listbox/index.js +21 -29
  520. package/lib/Loader/index.js +17 -29
  521. package/lib/Loader/styles.js +6 -8
  522. package/lib/LoaderButton/index.js +45 -34
  523. package/lib/Menu/constants.js +10 -8
  524. package/lib/Menu/descendants.js +73 -94
  525. package/lib/Menu/hooks.js +28 -39
  526. package/lib/Menu/index.flow.js +6 -5
  527. package/lib/Menu/index.js +113 -150
  528. package/lib/Menu/names.js +1 -1
  529. package/lib/Menu/styles.js +4 -3
  530. package/lib/Message/index.js +42 -66
  531. package/lib/Message/styles.js +15 -23
  532. package/lib/Modal/index.js +38 -51
  533. package/lib/Modal/styles.js +23 -32
  534. package/lib/Numeral/index.js +45 -64
  535. package/lib/Numeral/styles.js +3 -2
  536. package/lib/Numeral/tests/testNumeral.js +17 -27
  537. package/lib/OverflowList/index.flow.js +2 -1
  538. package/lib/OverflowList/index.js +31 -38
  539. package/lib/OverflowList/styles.js +5 -4
  540. package/lib/PartnerLogo/index.js +26 -35
  541. package/lib/PartnerLogo/styles.js +11 -14
  542. package/lib/Popout/index.js +105 -121
  543. package/lib/Popout/styles.js +3 -3
  544. package/lib/Portal/index.js +11 -29
  545. package/lib/Radio/index.js +20 -40
  546. package/lib/Radio/styles.js +14 -14
  547. package/lib/SegmentedControl/index.js +21 -34
  548. package/lib/SegmentedControl/styles.js +7 -9
  549. package/lib/Select/index.js +27 -44
  550. package/lib/Select/styles.js +16 -20
  551. package/lib/Skeleton/index.js +7 -4
  552. package/lib/SpotIllustration/illustrationNames.js +2 -1
  553. package/lib/SpotIllustration/index.js +9 -10
  554. package/lib/Stack/index.js +31 -39
  555. package/lib/Switch/index.js +21 -39
  556. package/lib/Switch/styles.js +8 -7
  557. package/lib/Table/index.js +30 -40
  558. package/lib/Table/styles.js +3 -2
  559. package/lib/TableCell/index.js +14 -27
  560. package/lib/TableCell/styles.js +3 -3
  561. package/lib/TableHeaderCell/index.js +30 -52
  562. package/lib/TableHeaderCell/styles.js +3 -2
  563. package/lib/TableRowAccordion/index.js +16 -34
  564. package/lib/TableRowAccordion/styles.js +5 -3
  565. package/lib/Tabs/index.js +18 -63
  566. package/lib/Tabs/styles.js +6 -6
  567. package/lib/Text/index.js +15 -21
  568. package/lib/Text/styles.js +4 -3
  569. package/lib/Textarea/index.js +33 -53
  570. package/lib/Textarea/styles.js +6 -5
  571. package/lib/ThemeProvider/index.js +4 -7
  572. package/lib/Toast/index.js +26 -37
  573. package/lib/Toast/styles.js +5 -4
  574. package/lib/ToggleHint/index.js +18 -36
  575. package/lib/ToggleHint/styles.js +6 -5
  576. package/lib/Token/index.js +20 -26
  577. package/lib/Token/styles.js +10 -9
  578. package/lib/TokenInput/index.js +78 -118
  579. package/lib/TokenInput/styles.js +5 -4
  580. package/lib/TokenInput/util.js +5 -3
  581. package/lib/Tooltip/index.js +45 -60
  582. package/lib/Tooltip/styles.js +4 -4
  583. package/lib/VisuallyHidden/index.js +3 -2
  584. package/lib/dataviz/index.js +4 -3
  585. package/lib/index.js +66 -64
  586. package/lib/systemProps/background.js +3 -1
  587. package/lib/systemProps/border.js +3 -1
  588. package/lib/systemProps/color.js +3 -1
  589. package/lib/systemProps/custom.js +3 -1
  590. package/lib/systemProps/flexbox.js +3 -1
  591. package/lib/systemProps/grid.js +3 -1
  592. package/lib/systemProps/index.js +16 -14
  593. package/lib/systemProps/layout.js +3 -1
  594. package/lib/systemProps/position.js +3 -1
  595. package/lib/systemProps/shadow.js +3 -1
  596. package/lib/systemProps/space.js +2 -1
  597. package/lib/systemProps/systemProps.js +14 -13
  598. package/lib/systemProps/tests/types.flow.js +27 -22
  599. package/lib/systemProps/typography.js +3 -1
  600. package/lib/systemProps/variant.js +4 -3
  601. package/lib/themes/dark/dataviz-palette.js +23 -21
  602. package/lib/themes/dark/decorative-palettes.js +3 -1
  603. package/lib/themes/dark/theme.js +22 -25
  604. package/lib/themes/extendedThemes/sproutTheme/dark/theme.js +16 -7
  605. package/lib/themes/extendedThemes/sproutTheme/index.js +3 -2
  606. package/lib/themes/extendedThemes/sproutTheme/light/theme.js +16 -7
  607. package/lib/themes/light/dataviz-palette.js +23 -21
  608. package/lib/themes/light/decorative-palettes.js +3 -1
  609. package/lib/themes/light/literal-colors.js +135 -133
  610. package/lib/themes/light/theme.js +56 -57
  611. package/lib/types/system-props.flow.js +1 -1
  612. package/lib/types/theme.colors.flow.js +4 -2
  613. package/lib/types/theme.flow.js +3 -2
  614. package/lib/utils/a11yTest.js +5 -8
  615. package/lib/utils/chartColors.js +3 -1
  616. package/lib/utils/constants.js +3 -1
  617. package/lib/utils/dataQaLabelQueries.js +13 -21
  618. package/lib/utils/hooks.js +41 -64
  619. package/lib/utils/index.js +2 -5
  620. package/lib/utils/innerText.js +12 -14
  621. package/lib/utils/mixins.js +6 -5
  622. package/lib/utils/react-testing-library.js +10 -20
  623. package/lib/utils/responsiveProps/index.js +3 -8
  624. package/lib/utils/system-props.js +4 -3
  625. package/lib/utils/useInteractiveColor.js +10 -9
  626. package/package.json +6 -13
@@ -1,13 +1,11 @@
1
1
  var _excluded = ["context", "element"],
2
- _excluded2 = ["element"];
3
-
2
+ _excluded2 = ["element"];
4
3
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
5
-
6
- 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); }
7
-
4
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
8
5
  /* eslint-disable */
9
- import * as React from "react";
10
- import { createContext, useState, useLayoutEffect, useEffect, useContext, useCallback, useMemo, useRef } from "react";
6
+ import * as React from 'react';
7
+ import { createContext, useState, useLayoutEffect, useEffect, useContext, useCallback, useMemo, useRef } from 'react';
8
+
11
9
  /**
12
10
  * These hooks and utilities are largely copied from the @reach-ui/descendents package. They consider the package
13
11
  * pre-release and unstable, so instead of importing it, we copied it here and changed the types from TypeScript to
@@ -15,13 +13,12 @@ import { createContext, useState, useLayoutEffect, useEffect, useContext, useCal
15
13
  */
16
14
 
17
15
  var noop = function noop() {};
16
+
18
17
  /**
19
18
  * Returns the previous value of a reference after a component update.
20
19
  *
21
20
  * @param value
22
21
  */
23
-
24
-
25
22
  export function usePrevious(value) {
26
23
  var ref = useRef(null);
27
24
  useEffect(function () {
@@ -29,6 +26,7 @@ export function usePrevious(value) {
29
26
  }, [value]);
30
27
  return ref.current;
31
28
  }
29
+
32
30
  /**
33
31
  * Wraps a lib-defined event handler and a user-defined event handler, returning
34
32
  * a single handler that allows a user to prevent lib-defined handlers from
@@ -37,18 +35,16 @@ export function usePrevious(value) {
37
35
  * @param theirHandler User-supplied event handler
38
36
  * @param ourHandler Library-supplied event handler
39
37
  */
40
-
41
38
  export function wrapEvent(theirHandler, ourHandler) {
42
39
  return function (event) {
43
40
  theirHandler && theirHandler(event);
44
-
45
41
  if (!event.defaultPrevented) {
46
42
  return ourHandler(event);
47
43
  }
48
44
  };
49
45
  }
50
46
  export function canUseDOM() {
51
- return typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined";
47
+ return typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined';
52
48
  }
53
49
  var useIsomorphicLayoutEffect = canUseDOM() ? useLayoutEffect : useEffect;
54
50
  export function createNamedContext(name, defaultValue) {
@@ -60,13 +56,13 @@ export function createDescendantContext(name, initialValue) {
60
56
  if (initialValue === void 0) {
61
57
  initialValue = {};
62
58
  }
63
-
64
59
  return createNamedContext(name, _extends({
65
60
  descendants: [],
66
61
  registerDescendant: noop,
67
62
  unregisterDescendant: noop
68
63
  }, initialValue));
69
64
  }
65
+
70
66
  /**
71
67
  * This hook registers our descendant by passing it into an array. We can then
72
68
  * search that array by to find its index when registering it in the component.
@@ -90,21 +86,18 @@ export function createDescendantContext(name, initialValue) {
90
86
  * composed descendants for keyboard navigation. However, in the few cases where
91
87
  * this is not the case, we can require an explicit index from the app.
92
88
  */
93
-
94
89
  export function useDescendant(_ref, indexProp) {
95
90
  var context = _ref.context,
96
- element = _ref.element,
97
- rest = _objectWithoutPropertiesLoose(_ref, _excluded);
98
-
91
+ element = _ref.element,
92
+ rest = _objectWithoutPropertiesLoose(_ref, _excluded);
99
93
  var _useState = useState(),
100
- forceUpdate = _useState[1];
101
-
94
+ forceUpdate = _useState[1];
102
95
  var _useContext = useContext(context),
103
- registerDescendant = _useContext.registerDescendant,
104
- unregisterDescendant = _useContext.unregisterDescendant,
105
- descendants = _useContext.descendants; // Prevent any flashing
106
-
96
+ registerDescendant = _useContext.registerDescendant,
97
+ unregisterDescendant = _useContext.unregisterDescendant,
98
+ descendants = _useContext.descendants;
107
99
 
100
+ // Prevent any flashing
108
101
  useIsomorphicLayoutEffect(function () {
109
102
  if (!element) forceUpdate({});
110
103
  registerDescendant(_extends({
@@ -123,21 +116,19 @@ export function useDescendants() {
123
116
  }
124
117
  export function DescendantProvider(_ref2) {
125
118
  var Ctx = _ref2.context,
126
- children = _ref2.children,
127
- items = _ref2.items,
128
- set = _ref2.set;
119
+ children = _ref2.children,
120
+ items = _ref2.items,
121
+ set = _ref2.set;
129
122
  var registerDescendant = useCallback(function (_ref3) {
130
123
  var element = _ref3.element,
131
- rest = _objectWithoutPropertiesLoose(_ref3, _excluded2);
132
-
124
+ rest = _objectWithoutPropertiesLoose(_ref3, _excluded2);
133
125
  if (!element) {
134
126
  return;
135
127
  }
136
-
137
128
  set(function (items) {
138
129
  var newItem;
139
- var newItems; // If there are no items, register at index 0 and bail.
140
-
130
+ var newItems;
131
+ // If there are no items, register at index 0 and bail.
141
132
  if (items.length === 0) {
142
133
  newItem = _extends({
143
134
  element: element,
@@ -165,33 +156,33 @@ export function DescendantProvider(_ref2) {
165
156
  var index = items.findIndex(function (item) {
166
157
  if (!item.element || !element) {
167
158
  return false;
168
- } // Does this element's DOM node appear before another item in the
159
+ }
160
+ // Does this element's DOM node appear before another item in the
169
161
  // array in our DOM tree? If so, return true to grab the index at
170
162
  // this point in the array so we know where to insert the new
171
163
  // element.
172
-
173
-
174
164
  return Boolean(item.element.compareDocumentPosition(element) & Node.DOCUMENT_POSITION_PRECEDING);
175
165
  });
176
166
  newItem = _extends({
177
167
  element: element,
178
168
  index: index
179
- }, rest); // If an index is not found we will push the element to the end.
169
+ }, rest);
180
170
 
171
+ // If an index is not found we will push the element to the end.
181
172
  if (index === -1) {
182
173
  newItems = [].concat(items, [newItem]);
183
174
  } else {
184
175
  newItems = [].concat(items.slice(0, index), [newItem], items.slice(index));
185
176
  }
186
177
  }
187
-
188
178
  return newItems.map(function (item, index) {
189
179
  return _extends({}, item, {
190
180
  index: index
191
181
  });
192
182
  });
193
183
  });
194
- }, // set is a state setter initialized by the useDescendants hook.
184
+ },
185
+ // set is a state setter initialized by the useDescendants hook.
195
186
  // We can safely ignore the lint warning here because it will not change
196
187
  // between renders.
197
188
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -200,13 +191,17 @@ export function DescendantProvider(_ref2) {
200
191
  if (!element) {
201
192
  return;
202
193
  }
203
-
204
194
  set(function (items) {
205
195
  return items.filter(function (item) {
206
196
  return element !== item.element;
197
+ }).map(function (item, index) {
198
+ return _extends({}, item, {
199
+ index: index
200
+ });
207
201
  });
208
202
  });
209
- }, // set is a state setter initialized by the useDescendants hook.
203
+ },
204
+ // set is a state setter initialized by the useDescendants hook.
210
205
  // We can safely ignore the lint warning here because it will not change
211
206
  // between renders.
212
207
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -224,118 +219,102 @@ export function DescendantProvider(_ref2) {
224
219
  }
225
220
  export function useDescendantKeyDown(context, options) {
226
221
  var _useContext2 = useContext(context),
227
- descendants = _useContext2.descendants;
228
-
222
+ descendants = _useContext2.descendants;
229
223
  var callback = options.callback,
230
- currentIndex = options.currentIndex,
231
- filter = options.filter,
232
- _options$key = options.key,
233
- key = _options$key === void 0 ? "index" : _options$key,
234
- _options$orientation = options.orientation,
235
- orientation = _options$orientation === void 0 ? "vertical" : _options$orientation,
236
- _options$rotate = options.rotate,
237
- rotate = _options$rotate === void 0 ? true : _options$rotate,
238
- _options$rtl = options.rtl,
239
- rtl = _options$rtl === void 0 ? false : _options$rtl;
224
+ currentIndex = options.currentIndex,
225
+ filter = options.filter,
226
+ _options$key = options.key,
227
+ key = _options$key === void 0 ? 'index' : _options$key,
228
+ _options$orientation = options.orientation,
229
+ orientation = _options$orientation === void 0 ? 'vertical' : _options$orientation,
230
+ _options$rotate = options.rotate,
231
+ rotate = _options$rotate === void 0 ? true : _options$rotate,
232
+ _options$rtl = options.rtl,
233
+ rtl = _options$rtl === void 0 ? false : _options$rtl;
240
234
  var index = currentIndex ? currentIndex : -1;
241
235
  return function handleKeyDown(event) {
242
- if (!["ArrowDown", "ArrowUp", "ArrowLeft", "ArrowRight", "PageUp", "PageDown", "Home", "End"].includes(event.key)) {
236
+ if (!['ArrowDown', 'ArrowUp', 'ArrowLeft', 'ArrowRight', 'PageUp', 'PageDown', 'Home', 'End'].includes(event.key)) {
243
237
  return;
244
- } // If we use a filter function, we need to re-index our descendants array
245
- // so that filtered descendent elements aren't selected.
238
+ }
246
239
 
240
+ // If we use a filter function, we need to re-index our descendants array
241
+ // so that filtered descendent elements aren't selected.
242
+ var selectableDescendants = filter ? descendants.filter(filter) : descendants;
247
243
 
248
- var selectableDescendants = filter ? descendants.filter(filter) : descendants; // Current index should map to the updated array vs. the original
244
+ // Current index should map to the updated array vs. the original
249
245
  // descendants array.
250
-
251
246
  if (filter) {
252
247
  index = selectableDescendants.findIndex(function (descendant) {
253
248
  return descendant.index === currentIndex;
254
249
  });
255
- } // We need some options for any of this to work!
256
-
250
+ }
257
251
 
252
+ // We need some options for any of this to work!
258
253
  if (!selectableDescendants.length) {
259
254
  return;
260
255
  }
261
-
262
256
  function getNextOption() {
263
257
  var atBottom = index === selectableDescendants.length - 1;
264
258
  return atBottom ? rotate ? getFirstOption() : selectableDescendants[index] : selectableDescendants[(index + 1) % selectableDescendants.length];
265
259
  }
266
-
267
260
  function getPreviousOption() {
268
261
  var atTop = index === 0;
269
262
  return atTop ? rotate ? getLastOption() : selectableDescendants[index] : selectableDescendants[(index - 1 + selectableDescendants.length) % selectableDescendants.length];
270
263
  }
271
-
272
264
  function getFirstOption() {
273
265
  return selectableDescendants[0];
274
266
  }
275
-
276
267
  function getLastOption() {
277
268
  return selectableDescendants[selectableDescendants.length - 1];
278
269
  }
279
-
280
270
  switch (event.key) {
281
- case "ArrowDown":
282
- if (orientation === "vertical" || orientation === "both") {
271
+ case 'ArrowDown':
272
+ if (orientation === 'vertical' || orientation === 'both') {
283
273
  event.preventDefault();
284
274
  var next = getNextOption();
285
- callback(key === "option" ? next : next[key]);
275
+ callback(key === 'option' ? next : next[key]);
286
276
  }
287
-
288
277
  break;
289
-
290
- case "ArrowUp":
291
- if (orientation === "vertical" || orientation === "both") {
278
+ case 'ArrowUp':
279
+ if (orientation === 'vertical' || orientation === 'both') {
292
280
  event.preventDefault();
293
281
  var prev = getPreviousOption();
294
- callback(key === "option" ? prev : prev[key]);
282
+ callback(key === 'option' ? prev : prev[key]);
295
283
  }
296
-
297
284
  break;
298
-
299
- case "ArrowLeft":
300
- if (orientation === "horizontal" || orientation === "both") {
285
+ case 'ArrowLeft':
286
+ if (orientation === 'horizontal' || orientation === 'both') {
301
287
  event.preventDefault();
302
288
  var nextOrPrev = (rtl ? getNextOption : getPreviousOption)();
303
- callback(key === "option" ? nextOrPrev : nextOrPrev[key]);
289
+ callback(key === 'option' ? nextOrPrev : nextOrPrev[key]);
304
290
  }
305
-
306
291
  break;
307
-
308
- case "ArrowRight":
309
- if (orientation === "horizontal" || orientation === "both") {
292
+ case 'ArrowRight':
293
+ if (orientation === 'horizontal' || orientation === 'both') {
310
294
  event.preventDefault();
311
295
  var prevOrNext = (rtl ? getPreviousOption : getNextOption)();
312
- callback(key === "option" ? prevOrNext : prevOrNext[key]);
296
+ callback(key === 'option' ? prevOrNext : prevOrNext[key]);
313
297
  }
314
-
315
298
  break;
316
-
317
- case "PageUp":
299
+ case 'PageUp':
318
300
  event.preventDefault();
319
301
  var prevOrFirst = (event.ctrlKey ? getPreviousOption : getFirstOption)();
320
- callback(key === "option" ? prevOrFirst : prevOrFirst[key]);
302
+ callback(key === 'option' ? prevOrFirst : prevOrFirst[key]);
321
303
  break;
322
-
323
- case "Home":
304
+ case 'Home':
324
305
  event.preventDefault();
325
306
  var first = getFirstOption();
326
- callback(key === "option" ? first : first[key]);
307
+ callback(key === 'option' ? first : first[key]);
327
308
  break;
328
-
329
- case "PageDown":
309
+ case 'PageDown':
330
310
  event.preventDefault();
331
311
  var nextOrLast = (event.ctrlKey ? getNextOption : getLastOption)();
332
- callback(key === "option" ? nextOrLast : nextOrLast[key]);
312
+ callback(key === 'option' ? nextOrLast : nextOrLast[key]);
333
313
  break;
334
-
335
- case "End":
314
+ case 'End':
336
315
  event.preventDefault();
337
316
  var last = getLastOption();
338
- callback(key === "option" ? last : last[key]);
317
+ callback(key === 'option' ? last : last[key]);
339
318
  break;
340
319
  }
341
320
  };
package/lib/Menu/hooks.js CHANGED
@@ -1,7 +1,8 @@
1
- import { createContext, useContext, useEffect } from "react";
2
- import scrollIntoViewIfNeeded from "scroll-into-view-if-needed";
3
- import { MENU_ROLES } from "./constants";
4
- import { createDescendantContext, useDescendantKeyDown, usePrevious, wrapEvent } from "./descendants";
1
+
2
+ import { createContext, useContext, useEffect } from 'react';
3
+ import scrollIntoViewIfNeeded from 'scroll-into-view-if-needed';
4
+ import { MENU_ROLES } from './constants';
5
+ import { createDescendantContext, useDescendantKeyDown, usePrevious, wrapEvent } from './descendants';
5
6
  export var MenuContext = /*#__PURE__*/createContext({
6
7
  role: MENU_ROLES.MENU,
7
8
  menuRef: {
@@ -12,7 +13,7 @@ export var MenuContext = /*#__PURE__*/createContext({
12
13
  onChange: undefined,
13
14
  state: {
14
15
  selectionIndex: 0,
15
- filterQuery: "",
16
+ filterQuery: '',
16
17
  filteredItems: null,
17
18
  isFilterInputFocused: false
18
19
  },
@@ -25,51 +26,45 @@ export var MenuButtonContext = /*#__PURE__*/createContext({
25
26
  closeOnItemClick: undefined,
26
27
  closePopout: undefined
27
28
  });
28
- export var MenuDescendantContext = createDescendantContext("MenuDescendantContext");
29
+ export var MenuDescendantContext = createDescendantContext('MenuDescendantContext');
30
+
29
31
  /**
30
32
  * When a user's typed input matches the string displayed in a menu item, it is
31
33
  * expected that the matching menu item is selected. This is our matching
32
34
  * function.
33
35
  */
34
-
35
36
  function filterItemsFromTypeahead(items, string) {
36
37
  if (string === void 0) {
37
- string = "";
38
+ string = '';
38
39
  }
39
-
40
40
  if (!string) {
41
41
  return null;
42
42
  }
43
-
44
43
  return items.filter(function (_ref) {
45
44
  var value = _ref.value,
46
- label = _ref.label;
45
+ label = _ref.label;
47
46
  return (value == null ? void 0 : value.toLowerCase().includes(string.toLocaleLowerCase())) || (label == null ? void 0 : label.toLowerCase().includes(string.toLocaleLowerCase()));
48
47
  }).map(function (_ref2) {
49
48
  var index = _ref2.index;
50
49
  return index;
51
50
  });
52
51
  }
53
-
54
52
  export function useMenuKeyDown() {
55
53
  var _useContext = useContext(MenuContext),
56
- onChange = _useContext.onChange,
57
- selectCallbacks = _useContext.selectCallbacks,
58
- setState = _useContext.setState,
59
- multiselect = _useContext.multiselect,
60
- _useContext$state = _useContext.state,
61
- filterQuery = _useContext$state.filterQuery,
62
- selectionIndex = _useContext$state.selectionIndex,
63
- filteredItems = _useContext$state.filteredItems,
64
- isFilterInputFocused = _useContext$state.isFilterInputFocused;
65
-
54
+ onChange = _useContext.onChange,
55
+ selectCallbacks = _useContext.selectCallbacks,
56
+ setState = _useContext.setState,
57
+ multiselect = _useContext.multiselect,
58
+ _useContext$state = _useContext.state,
59
+ filterQuery = _useContext$state.filterQuery,
60
+ selectionIndex = _useContext$state.selectionIndex,
61
+ filteredItems = _useContext$state.filteredItems,
62
+ isFilterInputFocused = _useContext$state.isFilterInputFocused;
66
63
  var _useContext2 = useContext(MenuButtonContext),
67
- closePopout = _useContext2.closePopout,
68
- closeOnItemClick = _useContext2.closeOnItemClick;
69
-
64
+ closePopout = _useContext2.closePopout,
65
+ closeOnItemClick = _useContext2.closeOnItemClick;
70
66
  var _useContext3 = useContext(MenuDescendantContext),
71
- items = _useContext3.descendants;
72
-
67
+ items = _useContext3.descendants;
73
68
  var shouldClosePopout = closeOnItemClick && !multiselect;
74
69
  var prevMenuItemsLength = usePrevious(items.length);
75
70
  var prevSelected = usePrevious(items[selectionIndex]);
@@ -82,7 +77,8 @@ export function useMenuKeyDown() {
82
77
  setState({
83
78
  selectionIndex: items.length - 1
84
79
  });
85
- } else if ( // Checks if
80
+ } else if (
81
+ // Checks if
86
82
  // - menu length has changed
87
83
  // - selection index has not changed BUT selected item has changed
88
84
  //
@@ -98,7 +94,6 @@ export function useMenuKeyDown() {
98
94
  }, [setState, items, prevMenuItemsLength, prevSelected, prevSelectionIndex, selectionIndex]);
99
95
  useEffect(function () {
100
96
  var newFilteredItems = filterItemsFromTypeahead(items, filterQuery);
101
-
102
97
  if (filterQuery && newFilteredItems && (filteredItems == null ? void 0 : filteredItems.length) !== (newFilteredItems == null ? void 0 : newFilteredItems.length)) {
103
98
  setState({
104
99
  filteredItems: newFilteredItems,
@@ -118,19 +113,15 @@ export function useMenuKeyDown() {
118
113
  activeDescendent: items[selectionIndex],
119
114
  handleKeyDown: wrapEvent(function (event) {
120
115
  var key = event.key;
121
-
122
116
  switch (key) {
123
- case " ":
117
+ case ' ':
124
118
  if (isFilterInputFocused) {
125
119
  return;
126
120
  }
127
-
128
121
  // falls through
129
122
  // eslint-disable-next-line no-fallthrough
130
-
131
- case "Enter":
123
+ case 'Enter':
132
124
  var selected = items[selectionIndex];
133
-
134
125
  if (selected) {
135
126
  event.preventDefault();
136
127
  var func = selectCallbacks.current[selected.index];
@@ -138,16 +129,14 @@ export function useMenuKeyDown() {
138
129
  onChange && selected.value && onChange(selected.value);
139
130
  shouldClosePopout && closePopout && closePopout();
140
131
  }
141
-
142
132
  return;
143
-
144
133
  default:
145
134
  return;
146
135
  }
147
136
  }, useDescendantKeyDown(MenuDescendantContext, {
148
137
  currentIndex: index,
149
- orientation: "vertical",
150
- key: "option",
138
+ orientation: 'vertical',
139
+ key: 'option',
151
140
  rotate: true,
152
141
  filter: function filter(option) {
153
142
  return !option.disabled && (!filteredItems || filteredItems.includes(option.index));
@@ -1,5 +1,6 @@
1
- import * as React from "react";
2
- import Box from "../Box";
3
- import Button from "../Button";
4
- import Popout from "../Popout";
5
- import { MENU_ITEM_ROLES, MENU_ROLES } from "./constants";
1
+
2
+ import * as React from 'react';
3
+ import Box from '../Box';
4
+ import Button from '../Button';
5
+ import Popout from '../Popout';
6
+ import { MENU_ITEM_ROLES, MENU_ROLES } from './constants';